偶最近在写一个网络应用程序,这个程序既能当服务器接收客户端的连接 又能去主动连接客户端的,但是在做的时候发现 如果一旦套接字正在监听了 就不能利用这个套接字去连接了,有办法能让这个套接字既在监听 有能利用它进行连接呢?难道必须要创建两个套接字吗?一个在本地监听,连接的时候用另外一个套接字..这能这样吗?不想创建这么多套接字吖..一个套接字可以实现吗?求指点

解决方案 »

  1.   

    TCP类型的socket要用2个套接字,UDP可以用一个。你可以看看这的socket例子:
    http://download.csdn.net/detail/geoff08zhang/4571358
      

  2.   


    额..TCP的话必要要两个套接字吗?有没有什么办法设置一下这个套接字的属性之类的?让他既可以在监听,有可以利用它进行connect操作的?不想创建哪么多的套接字..
      

  3.   

    accept()会返回侦听到的socket,然后启动线程来处理这个socket,accept就可以继续接受连接,另外的socket发送接收数据
      

  4.   


    额..这位兄台 妳有点答非所问了!在accept之前不是先要listen监听吗 我意思是如果利用listen监听了这个套接字 怎么样才可以依然使用这个套接字进行connect操作..
      

  5.   

    一个是进行监听的socket套接字,一个是进行IO通讯的套接字,不能共用