C# socket tcp 客户端接收数据的有关问题,请大家帮小弟我看下
C# socket tcp 客户端接收数据的问题,请大家帮我看下。
服务端是别人之前弄的,不能改动。
客户端必须与服务端建立连接以后,服务端会根据你建立的连接的端口号和地址,给你发送数据。
请问下,这种情况客户端该如何监听服务端发送的数据呢?
目前是这样的,循环不断的去取数据,但是这样感觉不太合适,有没有更好的办法。
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(ip), port);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);//设置SOCKET允许多个SOCKET访问同一个本地IP地址和端口号
socket.Connect(iep);
MessageBox.Show("连接成功");
while (true)
{
byte[] rebyte = new byte[1024];
string re = Receive(socket, 10000);
//string re = Encoding.Default.GetString(rebyte);
if (re.Trim() != "")
{
MessageBox.Show(re);
//this.AddDany(re);
}
//DestroySocket(socket);
}
------解决思路----------------------
客户端编程通常不需要什么技术,随便写也可以,有bug、性能低也可以。它跟服务器开发(特别是有着上千万用户的企业服务器开发)的技术要求是不一样的。所以对客户端程序“这样感觉不太合适”,其实大可不必,纯粹客户端程序的质量要求并不高,只要通过最基本的测试就行。
当然如果你已经有了一个服务器可用的最基础的通讯(消息收发)的那么一两百行代码(设计的出发点不一样),你完全可以复用到你的客户端上来。否则,就是这样写上十几、几十行代码,也完全可以的。
------解决思路----------------------
你可以想象一下范冰冰跟粉丝的关系。粉丝可以为了范冰冰的签名而彻夜排队等候,但是范冰冰不能为了给粉丝签名而什么一年什么旁的事都不干了、就在那守株待兔了。所以范冰冰就需要比较聪明,这就好像是服务器。而粉丝多傻都行,这就相当于客户端。
------解决思路----------------------
你这不是已经写的差不多了 有什么问题
------解决思路----------------------
楼主你这是错觉,必须是不断循环取的,但是要放到线程中的,不然程序流程会卡死.
服务端是别人之前弄的,不能改动。
客户端必须与服务端建立连接以后,服务端会根据你建立的连接的端口号和地址,给你发送数据。
请问下,这种情况客户端该如何监听服务端发送的数据呢?
目前是这样的,循环不断的去取数据,但是这样感觉不太合适,有没有更好的办法。
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(ip), port);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);//设置SOCKET允许多个SOCKET访问同一个本地IP地址和端口号
socket.Connect(iep);
MessageBox.Show("连接成功");
while (true)
{
byte[] rebyte = new byte[1024];
string re = Receive(socket, 10000);
//string re = Encoding.Default.GetString(rebyte);
if (re.Trim() != "")
{
MessageBox.Show(re);
//this.AddDany(re);
}
//DestroySocket(socket);
}
------解决思路----------------------
客户端编程通常不需要什么技术,随便写也可以,有bug、性能低也可以。它跟服务器开发(特别是有着上千万用户的企业服务器开发)的技术要求是不一样的。所以对客户端程序“这样感觉不太合适”,其实大可不必,纯粹客户端程序的质量要求并不高,只要通过最基本的测试就行。
当然如果你已经有了一个服务器可用的最基础的通讯(消息收发)的那么一两百行代码(设计的出发点不一样),你完全可以复用到你的客户端上来。否则,就是这样写上十几、几十行代码,也完全可以的。
------解决思路----------------------
你可以想象一下范冰冰跟粉丝的关系。粉丝可以为了范冰冰的签名而彻夜排队等候,但是范冰冰不能为了给粉丝签名而什么一年什么旁的事都不干了、就在那守株待兔了。所以范冰冰就需要比较聪明,这就好像是服务器。而粉丝多傻都行,这就相当于客户端。
------解决思路----------------------
你这不是已经写的差不多了 有什么问题
------解决思路----------------------
楼主你这是错觉,必须是不断循环取的,但是要放到线程中的,不然程序流程会卡死.