想问一下,关于.NET 客户端的即可以发消息并从服务器返回提示信息,也可以接受消息,是不是要双SOCKET啊?还有我在客户端怎么才能保持一连接上服务器SOCKET就在所有的窗体中都能用,除非人为的关闭。我是初学着,问的问题希望大家不要见怪

解决方案 »

  1.   

    socket程序做的少,没发言权...关注一下..
      

  2.   

    1. yes 
       一个listen端口,accept连接请求,接收数据;一个connect到服务端,发送数据;双工的可以在同一端口收方。2.可以,只要你把通讯层和业务层分开
      

  3.   

    服务端才是一个listen  有几个客户就开几个socket
    客户端只有一个socket  接受和发送都是用这个
      

  4.   

    要在客户端的所有窗口都能使用这个socket
    就把它定义成全局变量
    最好在一个单独的类中
      

  5.   

    如果你用的是tcp来连接的话,可以用TcpClient类来做客户端,用NetworkStream类来做发送和接收的工作,用tcpClient连上后,可以new两个NetworkStream的实例,一个用于发送,一个用于接收,这两个实例可以是static的,所以在任何form中都可以使用。关于例子可以参见msdn中关于tcpclient、tcplisten和networkstream这三个类的相关用法。
      

  6.   

    一个socket可以完成Socket.Send()
    Socket.Recv()
      

  7.   

    1.是的,在tcp编程中,起码一个用来listen
            在udp中,只要一个就可以
    2.可以,socket不仅可以跨窗体,还可以跨进程。你可以把它看成文件,好像原来的设计就是这么比喻的。你可以把socket传给其他进程,他们可以继续用,前提:传的那个没有关闭掉那个socket
      

  8.   

    所谓的socket,就是32位的文件句柄
      

  9.   

    例子
    <.net SDK>v1.1\Samples\Applications\WinTalk