根據POSIX,當一個進程accept()
S於一個listen()
荷蘭國際集團socket()
L1,事後close()
小號L1,並創建新的socket()
L2結合的相同的接口/地址/端口上的連接,listen()
S和accept()
新的連接,將從前一個監聽插座L1接受的插座正常工作,就好像L1未閉合一樣?還是以這種方式創建和啓動套接字L2是不可能的?請提供參考。重新啓動偵聽套接字對接受的連接有什麼影響?
實施例:
int server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
bind(server, &someAddress, sizeof(someAddress)))
listen(server, 0);
int conn_1 = accept(server, NULL, NULL);
/* ... */
int conn_n = accept(server, NULL, NULL);
/* RESTART LISTENING SOCKET: */
close(server);
server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
bind(server, &someAddress, sizeof(someAddress)))
listen(server, 0);
int newconn_1 = accept(server, NULL, NULL);
/* ... */
int newconn_n = accept(server, NULL, NULL);
/* Will connections conn_1...conn_n still properly operate at this point?
您需要添加一些代碼來說明您的觀點。我無法理解你在問什麼。 – SergeyA
@SergeyA我現在添加的示例如何? – jotik