用listen监听后如何关闭重新监听

cym830313 2004-12-05 08:54:51
在用listen(bindserver,5);监听后如何
关闭
再重新监听端口

初始代码
wversion:=MAKEWORD(2,2);
yz:=WSASTARTUP(wversion,wsadata);
////////////////////////////////////////////////
bindserver:=socket(AF_INET,SOCK_STREAM,0);
addrserver.sin_family:=AF_INET;
addrserver.sin_port:=htons(port);//监听的端口
addrserver.sin_addr.S_addr:=INADDR_ANY;
setsockopt(bindserver,SOL_SOCKET,SO_RCVTIMEO,timeout,sizeof(timeout)); //设置超时时间
bind(bindserver,addrserver,sizeof(addrserver)); //绑定
yz:=listen(bindserver,5); //监听
writeln('Listen .......... OK!');
在进行若干操作后如何关闭这个监听再重新进入监听端口的状态

我用这段代码关闭后
WSACleanup();
closesocket(getclient);
closesocket(bindserver);

再调用开始的初始化代码不能重新监听
yz:=listen(bindserver,5); 它返回-1不能创建监听

请高手给予指点
...全文
443 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cym830313 2004-12-09
  • 打赏
  • 举报
回复
也试过了,不行,再次调用listen失败
gwolf 2004-12-05
  • 打赏
  • 举报
回复
//WSACleanup();
把它注掉试试

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧