- 论坛徽章:
- 0
|
等待 TIME_WAIT 结束可能是令人恼火的一件事,特别是如果您正在开发一个套接字服务器,就需要停止服务器来做一些改动,然后重启。幸运的是,有方法可以避开 TIME_WAIT 状态。可以给套接字应用 SO_REUSEADDR 套接字选项,以便端口可以马上重用。
- int sock, ret, on;struct sockaddr_in servaddr;
- /* Create a new stream (TCP) socket */
- sock = socket( AF_INET, SOCK_STREAM, 0 ):
- /* Enable address reuse */
- on = 1;
- ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) );
- /* Allow connections to port 8080 from any available interface */
- memset( &servaddr, 0, sizeof(servaddr) );
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
- servaddr.sin_port = htons( 8080 );
- /* Bind to the address (interface/port) */
- ret = bind( sock, (struct sockaddr *)&servaddr, sizeof(servaddr) );
复制代码
[ 本帖最后由 anhongkui 于 2006-7-5 11:18 编辑 ] |
|