Server端为客户建立连接一般用Socket socket = tcpListener.AcceptSocket();至于原理偶也不晓得,那个知道吗?

解决方案 »

  1.   

    感谢您使用微软产品。 您的程序之所以会产生异常,是因为您在一个函数中实例化了一个TcpListener对象tcpServerListener,但是您试图在另一个新产生的线程中对该tcpServerListener对象进行操作,而事实上,在新产生的线程中该对象tcpServerListener并没有实例化,这时对tcpServerListener的操作必然会出错。建议您把以下两句移到GetClientInfo函数中去:tcpServerListener=new TcpListener(nPort);
    tcpServerListener.Start();
    经过我们测试,此时程序将会运行正常。
     
    另外,在您的程序中,有如下一句:
    ListenerThread=new Thread(new ThreadStart(new Form1().GetClientInfo));
    我们无法揣测您的意图是什么,不过如果调用该语句的函数在Form1中,并且只是想简单的产生一个新的线程,建议改动如下:
    ListenerThread=new Thread(new ThreadStart(GetClientInfo));
     
     - 微软全球技术中心 VC技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。