首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Socket编程代码有点有关问题求大神指点谢谢

2013-08-04 
Socket编程代码有点问题求大神指点多谢#窗体中Socket异步编程,一个服务器能同时和多个客户端互发送数据,但

Socket编程代码有点问题求大神指点多谢
#窗体中Socket异步编程,一个服务器能同时和多个客户端互发送数据,但是我这个有错误,不能同时和多个客户端通讯 socket
[解决办法]
            private void listen()
             {
                 string hostName = Dns.GetHostName();
                 IPAddress[] ip = Dns.GetHostAddresses(hostName);
                 IPAddress HostIp = ip[1];
                    IPEndPoint iep = new IPEndPoint(HostIp,8882);
                    Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    serverSocket.Bind(iep);
                 serverSocket.Listen(100);
                   serverSocket.Accept();
             }

你这里只有一个 Accept,阻塞一下然后就“完了”,啥有意义的事情都不做,这是为什么?

另外,我比较反感那些把代码注释掉的做法。需要把你注释的代码删掉,留下必要的东西,才能开始读代码。你为什么不自己动手吧注释删掉呢?

我告诉你一个经验,注释越多,代码越烂。
[解决办法]
serverSocket.BeginAccept这个方法是非阻塞的,不需要循环,
Accept是阻塞的需要循环。
推荐BeginAccept,http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.beginaccept(v=vs.80).aspx。参考下MSDN吧

热点排行