请问我怎样可以释放有socket程序占用的端口?

[复制链接]
查看11 | 回复2 | 2012-11-30 20:52:33 | 显示全部楼层 |阅读模式
释放是内核干的事,不好控制,但你可以用重新使用端口的方式就不会每次都报端口未释放了具体做法是在你的sock句柄中使用setsockopt,示例如下:int InitSocket(int port)
//, struct sockaddr_in *sa_serv){int listen_sd,err;int one = 1;struct sockaddr_in sa_serv;listen_sd = socket (AF_INET, SOCK_STREAM, 0);if(listen_sd < 0){return listen_sd;}if (setsockopt(listen_sd, SOL_SOCKET, SO_R...
回复

使用道具 举报

千问 | 2012-11-30 20:52:33 | 显示全部楼层
只要在客户端程序创建socket时,不要调用bind(这样系统会分配一个临时端口给客户socket,当Server端关闭一个client的连接后,client也将该socket关闭,再建立一个新的socket与Server连接(该socket的端口与被Server端关闭的端口不同),因为连接的socket对(socket对为Server,Client端的IP...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行