用socket可以做很多底层控制
用TCPList简单,但不支持异步方式

解决方案 »

  1.   

    在.net中,通过socket收发数据有多种方法如:send,rceive(传统windows sockets编程所用的方法)或 通过networkstream都行,只是方法不同,同理,监听端口通过先bind再listen(传统windows sockets编程所用的方法)或使用 FCL提供的TCPListenern 类也都行。至于同步和异步那是网络通信的常识,在 socket编程中也被称为阻塞和非阻塞,在传统windows sockets编程中由WSAAsync***类函数实现非阻塞,而在.net中是通过delegate 'IAsyncResult’实现的,在此只是抛砖引玉,这是一个精巧的编程模型,你可仔细思考一下
      

  2.   

    关注,<<Visual c#.net 网络核心编程>>这本书我也看过,不过写了几个例子总是出错,并且我一时用不着,我也就没往下看了
      

  3.   

    我也看过socket方面,不过没看书,看了msdn,再找几个简单的例子
      

  4.   

    到底什么时候用 socket 什么时候用 TcpClient ??
    1.socket
    Socket s=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//创建客户端Socket对象实例 
    try{ 
    s.Connect("www.tuha.net",4088);//建立与远程主机的连接 

    catch(Exception e){ 
    MessageBox.show("连接错误:" +e.Message); 

    try{ 
    NetworkStream stream=new NetworkStream(s,FileAccess.ReadWrite,false);//取得网络传输流 
    } 2.TcpClient 
    TcpClient tcpClient = new TcpClient();//创建TcpClient对象实例 
    Try{ 
    tcpClient.Connect("www.tuha.net",4088);//尝试与远程主机相连 

    catch(Exception e){ 
    MessageBox.Show("连接错误:"+e.Message); 

    try{ 
    NetworkStream stream=tcpClient.GetStream();//获取网络传输流 

    catch(Exception e) 

    MessageBox.Show("TcpClient错误:"+e.Message); 
    }