我看网络编程方面的例子,一般都是在服务器端用Socket,客户端用TcpClient,所以有两个问题:
1.能不能在服务器端和客户端只使用Socket来接收和发送信息。
2.在服务器端和客户端只使用TcpClient来接收和发送信息。还有就是使用Socket和TcpClient有什么区别?

解决方案 »

  1.   

    TcpClient类专为客户端设计,它为 TCP 网络服务提供客户端连接。TcpClient类是创建在Socket之上的
      

  2.   

    也就是说TcpClient已经封装了TCP套接字的创建
      

  3.   

    还有就是,在什么情况下使用Socket的AcceptSocket()方法,什么时候使用AcceptTcpClient
    ()方法?谢谢
      

  4.   

    TCPClient是以Socket为基础封装而来的
      

  5.   

    TcpClient是Socket的基础上的封装,一般的应用,其实用TcpClient可以了,或者使用NetStream也不错,如果要作点高级的事情,用Socket作吧,不过用下来其实也差不多,习惯而已
      

  6.   

    ------------------------------
    物理层:HUB,网线
    链路层:MAC,ARP,交换机
    网络层:IP,ICMP,IGMP,路由器
    传输层:TCP,UDP
    会话层:HTTP,SMTP,FTP,POP3
    表示层:SOAP,SSL
    应用层:WebService的Method
    -------------------------------
    Socket是对网络层操作
    TcpClient是对传输层操作
    ASP.NET是对会话层操作你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
      

  7.   

    你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
    =================================
    上面的话是什么意思?
      

  8.   

    如果你用Socket访问IIS,要做如下考虑:网络层:
    使用什么网络层协议,如IPV4还是IPV6;如果开发路由器也要考虑这个问题传输层:
    你要使用那种传输层协议,比如是TCP.会话层:
    你要使用那种会话层协议,如HTTP.=====================================================
    也就是说你可以用
    Socket类.Send方法 发送如下字串的二进制到IIS
    //
    GET /?T1=234&T2=789&B1=%CC%E1%BD%BB HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
    Host: 192.168.0.2:81
    Connection: Keep-Alive
    //你会收用Receive到如下数据:
    //
    HTTP/1.0 200 OK
    MIME_version:1.0
    Content_Type:text/html
    Content_Length:N
    [input type=button]
    //
    然后你可以将此数据解析成一个HTML页的按钮
    ///////////////////////////////////////////////////////////上面的操作就是:
    网络层-----会话层,用Socket访问IIS中的ASP.NET的页面
    传输层,会话层的转换自已用代码实现了但是要这样做,WEB开发人员会死的很惨,所以WEB开发只要实现[会话层-----会话层]就可以了
    他要要做的只是[form] 到IIS,Response到客户端。
    而到了WebService的Method开发时,Response都不用考虑了-------------------------------------
    现在再说[Socket和TcpClient有什么区别]Socket:网络层
    TcpClient:传输层当你只考虑:主机,端口,数据传输时,用TcpClient,或UdpClient
    当你要考虑:IP封包,路由,IP数据包时,用Socket还有NET中的Socket类提供了一些对Socket操作的高级封装,但同时无法实现一些Socket底部操作。目前在NET中不建议使用Socket,就如现在不建议使用NET开发DirectX一样,虽然可以做到等路由器,交换机都使用Win CE,集成Net类时,也许我上面的话会过时
      

  9.   

    up,正准备开发pos系统的传输,可参考一下。
      

  10.   

    你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
    =================================
    上面的话是什么意思?
    ==================================================================
    意思就是http协议头作为socket中普通的数据传出去了,接受的包里,http协议头也作为普通的数据接受过来,你得手动判断那些玩意,socket是网络中最基础的,不光http,甚至udp tcp的头都可以伪造。
      

  11.   

    我觉得是一样的吧,都可以互相转换的。比如用Socket的Receive()方法接收数据,而用TcpClient就用它的NetworkStream的Read()方法来读。