有点迷惑
一个SOCKET S =
这个S可以
bind(S...)
listen(S,...);
send(S,...);
recv(S,...);我这个S可以同时做客户端和服务端不?既可以同时进行 监听,发送,接受!回答请讲为什么谢谢

解决方案 »

  1.   

    还是一个socket监听
    接受连接就新建同一个socket
    然后有个socket作客户端去connect好了
      

  2.   

    也就是我想nat打洞 服务端和客户端都只用一个端口可以实现不,具体怎么弄
      

  3.   

    你的问题应该可以实现的,开两个线程,一个创建一个服务端的socket监听端口。另一个线程创建一个socket想服务端打开的端口发送消息。我也是新人,刚学Winsock,recv总是接收不到send的message怎么办呢?
    我在下面的连接中发帖了。请大家多多指教。
    http://topic.csdn.net/u/20091124/16/0ef4ee5f-bb7d-4d99-b5e3-102b30f7aac1.html?seed=796824525&r=61407858#r_61407858
      

  4.   

    作为服务器端要通过accept出来的新socket作为收发的句柄
      

  5.   

    不能。
    listen把未连接的套接口转化为被动套接口,指示内核应接受指向此套接口的连接请求(接收SYN,只有listen状态下才能接收SYN,只有服务器端需要listen),此时的监听套接口中的记录的4-tuple内容为:本机IP、本机port、*、*(*为通配符,能通信的套接字中要为远端的IP和port),一旦有链接该监听套接口调用accept()创建新的套接字与客户端连接进行通信,在这里调用accept时其实是创建了一个具有完整4-tuple组的套接字并返回其句柄,这个套接口才是用来通信的。不知道看了上面说你能不能明白,我也是新手,大家一起学习哈。