首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

socket 异常怎么恢复

2012-02-25 
socket 错误如何恢复? - C++ Builder / Windows SDK/API我用winsock的时候,当socket出现 10054(或者是其它

socket 错误如何恢复? - C++ Builder / Windows SDK/API
我用winsock的时候,当socket出现 10054(或者是其它错误)错误时,能不能复用这个个socket 呢?就是将这个连接关闭再重新打开,而不用socket再创建一个,还是只能closesocket后,再建立一个新的socket才能再次恢复tcp连接的???
请求各位指点迷津...

[解决办法]
//看下这个API level的值调整一下,可以重用

int setsockopt (

SOCKET s,
int level,
int optname,
const char FAR * optval,
int optlen
);


setsockopt 设置socket 详细用法 1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: 
BOOL bReuseaddr=TRUE; 
setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));
[解决办法]
设置调用closesocket()后,仍可继续重用该socket。调用closesocket()一般不会立即关闭socket,而经历TIME_WAIT的过程:

C/C++ code
  BOOL bReuseaddr = TRUE;  setsockopt( s, SOL_SOCKET, SO_REUSEADDR, ( const char* )&bReuseaddr, sizeof( BOOL ) ); 

热点排行