我看了很多关于tcp客户端的例子都是与服务端建立连接后,调用发送函数发送数据,然后用接收函数等待回应。可我现在需要的是建立连接后不发送请求开始就监听等待服务端发来的消息,应该是如何处理呢?我希望的是一个发送线程只管发送,一个接收线程只管接收,这样可行吗?

解决方案 »

  1.   

    UDP的形式可以设现
    可惜也是初学者!!呵呵!!!
      

  2.   

        当然可行了,一个socket既可以send(),也可以recv()阿。如果你用的是阻塞模式,那么最简单的就是connect()之后,另起一个线程,在这个线程里用连接上的socket调用recv()阻塞接收数据就行了。要是想发送数据,也可以再单起一个线程,在这个线程里用连接上的socket调用send()阻塞接收数据就行了。
      

  3.   

    一个线程接收,一个线程发送是可以的。使用winsock2的overlapped。
      

  4.   

    socket建立连接后,任何一端收发都是可以的这个实现没什么问题!
    另外,我觉得是不是要实现一个状态机来确定此时的状态来决定哪个线程工作!
      

  5.   

       在windows编程中一般用WASyncSelect处理接受问题。
       而且用微软给你封装好的CASyncSocket or CSocket编程即可.   如果想用更低级点,那么就最好找本书看看,或者在网上看专题.特别是关于socket方面的.