社区
C#
帖子详情
请教C#的Socke高手?? C#做的Socket客户端如何用已连接的Socke接收服务器定时传回的信息????不能阻塞客户端。
peterlanhaijun
2006-04-28 04:07:48
小弟用C#做的Socket客户端,连接上服务器后,首先向服务器发一个设置命令,服务器收到设置命令后就根据客户的请求定时地向客户端返回信息。
问题就是我的客户端用怎样的代码来接收服务器定时传回的数据。并且不能阻塞客户程序,因为客户端还要同时作其他工作。
请教C#的Socke高手????
...全文
315
10
打赏
收藏
请教C#的Socke高手?? C#做的Socket客户端如何用已连接的Socke接收服务器定时传回的信息????不能阻塞客户端。
小弟用C#做的Socket客户端,连接上服务器后,首先向服务器发一个设置命令,服务器收到设置命令后就根据客户的请求定时地向客户端返回信息。 问题就是我的客户端用怎样的代码来接收服务器定时传回的数据。并且不能阻塞客户程序,因为客户端还要同时作其他工作。 请教C#的Socke高手????
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
任亚军
2006-04-28
打赏
举报
回复
步骤: 定义IP
handler = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
handler.Connect(RemoteEPServer);
建立byte[]存放接受数据
用handler.receive 方法/send方法收发数据
zjk96321
2006-04-28
打赏
举报
回复
启个线程,用一个固定的端口来接收服务端的数据,如果还有其它任务可以用另外一个端口来发送数据。
wangsaokui
2006-04-28
打赏
举报
回复
while (true)
{
try
{
Socket receiver = Connect();
int byteRec = receiver.Receive(buffer);
if (byteRec > 0)
{
.................
//Connect Method
public Socket Connect()
{
try
{
if (handler == null)
{
handler = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
handler.Connect(RemoteEPServer);
}
return handler;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return null;
}
}
Matthewzhong
2006-04-28
打赏
举报
回复
private BinaryReader br = null;
private NetworkStream ns = null;
ns = TcpClient.GetStream();
br = new BinaryStream(ns);
private void Listening()//线程
{
while (!exit)
{
byte[] buffer = new byte[1024];
try
{
buffer = br.ReadBytes(1024);
}
catch (System.IO.IOException)
{
}
}
}
NetworkStream 要是全局的,由它生成的BinaryReader和BinaryWriter要在程序结束时才能Close
这样你就可以通过一个线程来接收服务器信息而向服务器发送信息则可以在不同的函数中
joe_lu_1985
2006-04-28
打赏
举报
回复
数据查询,修改之类的工作也用同一个socket?
peterlanhaijun
2006-04-28
打赏
举报
回复
再顶
peterlanhaijun
2006-04-28
打赏
举报
回复
同时客户端还在进行其他的如数据查询,修改之类的工作。
peterlanhaijun
2006-04-28
打赏
举报
回复
我考虑的也是新建一个线程来接收。
While(true)
{
Thread.Sleep(100);
if(ClientSocket.Available > 0)
{
byte[] headerbyte = new byte[ClientSocket.Available]
ClientSocket.Receive(headerbyte);
}
}
joe_lu_1985
2006-04-28
打赏
举报
回复
其他工作是什么?
Matthewzhong
2006-04-28
打赏
举报
回复
启动一个线程来读取
Android为
客户端
批量上传图片到
C#
服务器
该应用基于
C#
为
服务器
接收
Android端传过来的图片以及文字;可以进行批量保存图片 协议用tcp编写
UR机械臂与PC通讯程序(
socke
t
)
有UR与PC
连接
和传递位姿的详细步骤和注意事项 1.使用UR5机械臂 2.使用了电动夹爪 3.语言用C++(也可以使用
C#
) 4.附带部分参考文献
Visual
C#
实现HTTP代理服务程序
Visual
C#
实现HTTP代理服务程序的简单介绍和创建细节过程,初学者认真看看可以模仿制作,入门比较快。
C#
网络编程实现Web代理功能
C#
网络编程实现Web代理功能
c#
网络编程聊天室
言
C#
网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。 本文是该系列第一篇,主要讲述了基于套接字(
Socke
t
)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、
连接
远程服务端;第二篇讲述了一个简单的范例:从
客户端
传输字符串到服务端,服务端
接收
并打印字符串,将字符串改为大写,然后再将字符串回发到
客户端
,
客户端
最后打印
传回
的字符串;第三篇是第二篇的一个强化,讲述了第二篇中没有解决的一个问题,并使用了异步传输的方式来完成和第二篇同样的功能;第四篇则演示了如何在
客户端
与服务端之间收发文件;第五篇实现了一个能够在线聊天并进行文件传输的聊天程序,实际上是对前面知识的一个综合应用。 与本文相关的还有一篇文章是:
C#
编写简单的聊天程序,但这个聊天程序不及本系列中的聊天程序功能强大,实现方式也不相同。
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章