1)TCP穿透需要客户端fd先绑定一个端口,然后去链接外部服务器,然后再监听该端口以当作服务器接收外部请求。
2)服务器端将客户端的internet地址及端口发送给客户端B
3)客户端B连接A的internet的地址及端口即可穿透内网网络
原理:
closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:
BOOL bReuseaddr=TRUE;
setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));