http://topic.csdn.net/u/20080623/08/4bbd2475-45f1-42e3-a613-16b094759ade.html

解决方案 »

  1.   

    服务端的listen也只是为了建立连接而已,连接建立后,还得弄个线程去侦听数据
      

  2.   

    这个我最近写的DEMO程序,刚好和你的一样,你参考下吧。通过了测试了!            
    localServer = new TcpListener((Dns.GetHostAddresses(Dns.GetHostName()))[0], port);
                localServer.Start();
                while (isListener)
                {
                    System.Threading.Thread.Sleep(100);
                    isRun = true;
                    if (localServer.Pending())
                    {
                        Socket currentSocket = localServer.AcceptSocket();
                        IPEndPoint currPoint = (IPEndPoint)currentSocket.RemoteEndPoint;
                        Server485 current485 = new Server485(currPoint.Address.ToString(), currPoint.Port, currentSocket);
                        DealBuseness currDeal = new DealBuseness(ref current485, currentForm, delegtCard, delegt485);
                        currDeal.Start();
                        if (current485List == null)
                        {
                            current485List = new List<DealBuseness>();
                        }
                        current485List.Add(currDeal);
                        if (currentForm != null && delegt485 != null)
                        {
                            currentForm.Invoke(delegt485, currPoint.Address.ToString(), true);
                        }
                    }
                }