private void getData()
{            
   TcpListener tl = new TcpListener(886);
   tl.Start();
   while (true)
   { 
    //接受数据
   }
}
我在这里创建了一个listener来监听数据.但是不知道在我的form里面什么时候怎么调用合适.我想在form启动的时候就一直监听.是不是放在form_load里面?但是这样的话.里面的接受//数据的方法 是只出现一次呢?还是一直有监听?
感激不尽.可惜我没分了-_-

解决方案 »

  1.   

    接收数据不是用TcpListener的,它只负责接受连接(Accept)
      

  2.   

    可以这样:
    TcpListener tl = new TcpListener(886); 
    tl.Start();
    while (true)//这儿最好控制,什么时候跳出循环
    {   
       if (tl.Pending())//如果队列中有连接请求
       {
          TcpClinet tc = tl.Accept();
          clientList.Add(tc);//把这个TcpClinet留着,以后跟连你的这个用户通信就用它了
           //做些要做的事,譬如开始异步接收数据
       }
       Application.DoEvents();//如果这是在主线程的话,刷新下界面

      

  3.   

    lake_cx 实在是太感激你了. 听君一席话胜读十年书
      

  4.   

    再请教一下.我做一个软件集成了发送数据和接受数据. 如果我发送数据是用udp.sent()的方法.那么我在另一台机器上面用什么方法接受好呢(也是同一个程序). tcpclient.recieve可不可以接收到? 还是用socket?还是其他?
      

  5.   

    终于搞好了.谢谢.lake_cx.我现在可以发也可以收了.异地的.哈哈
      

  6.   

    中国是不是没人用Socket的啊?一谈到networking programming,就一定是要Tcp*******
      

  7.   

    注意 
    如果要编写相对简单的应用程序,而且不需要最高的性能,则可以考虑使用 TcpClient、TcpListener 和 UdpClient。这些类为 Socket 通信提供了更简单、对用户更友好的接口。
     
    1、楼主首先要有连接的
    2、楼主是用于简单的应用程序
    3、楼主先要能将功能实现,才能考虑性能
    4、楼主还搞不定,需要学习