1
我想使用select在同一套接字描述符(serverside)上的客戶端/服務器上接收和發送數據。Select()使用相同套接字描述符發送和接收
timestruct* myTime;
sockfd = accept(listeningFd, 0, 0);
while(1)
FD_ZERO(&my_fd_set)
maxFd = sockfd
FD_ZERO(&my_fd_set);
FD_SET(sockfd, &my_fd_set);
select(maxFd+1, &my_fd_set, &my_fd_set, NULL, myTime);
for (j=0; j<=maxFd; j++)
if(FD_ISSET(j, &temp_fd_set))
if(j==sockfd)
send()
if(j==sockfd)
recv()
這實際上是我想要做的。顯然,這不會起作用,因爲sockfd將會是發送和接收的相同值。有沒有辦法,我可以做到這一點,而不使用fork()? 目前我有一個阻塞recv和發送,但可能需要服務器recv多個命令,而另一個命令正在處理髮送回客戶端。 我很清楚c和'select()'。因爲select有三個fd_set選項(讀,寫,執行),所以我想也許我可以做到這一點。
謝謝。
哇。謝謝,它現在起作用!現在看起來很明顯!除了這個,我正在嘗試一切。 :/ – RileyVanZeeland