C# socket tcp 客户端接收数据的有关问题,请大家帮小弟我看下

C# socket tcp 客户端接收数据的问题,请大家帮我看下。
本帖最后由 hexiren 于 2015-05-21 14:14:33 编辑
服务端是别人之前弄的,不能改动。
客户端必须与服务端建立连接以后,服务端会根据你建立的连接的端口号和地址,给你发送数据。
请问下,这种情况客户端该如何监听服务端发送的数据呢?

目前是这样的,循环不断的去取数据,但是这样感觉不太合适,有没有更好的办法。


 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、性能低也可以。它跟服务器开发(特别是有着上千万用户的企业服务器开发)的技术要求是不一样的。所以对客户端程序“这样感觉不太合适”,其实大可不必,纯粹客户端程序的质量要求并不高,只要通过最基本的测试就行。

当然如果你已经有了一个服务器可用的最基础的通讯(消息收发)的那么一两百行代码(设计的出发点不一样),你完全可以复用到你的客户端上来。否则,就是这样写上十几、几十行代码,也完全可以的。


------解决思路----------------------
你可以想象一下范冰冰跟粉丝的关系。粉丝可以为了范冰冰的签名而彻夜排队等候,但是范冰冰不能为了给粉丝签名而什么一年什么旁的事都不干了、就在那守株待兔了。所以范冰冰就需要比较聪明,这就好像是服务器。而粉丝多傻都行,这就相当于客户端。
------解决思路----------------------
你这不是已经写的差不多了 有什么问题
------解决思路----------------------
楼主你这是错觉,必须是不断循环取的,但是要放到线程中的,不然程序流程会卡死.