握手:
服务器 - >是 - >客户, 握手保持这种方式并且完美地运作。
if ((recvMsgSize = recvfrom(sock, recBuffer, RX_BUF_SIZE, 0,(struct sockaddr *) &clntAddr, &cliAddrLen)) < 0)
printf("Handling Client: %s\n", inet_ntoa(clntAddr.sin_addr));
printf("Received:");
for(i = 0; recBuffer[i] != '\0'; ++i)
printf("%c",recBuffer[i]);
printf("\n");
/* Send response datagram back to the client */
unsigned char respBuffer[] = {255, 255, 255, 255, 4, 'Y', 'E', 'S'};
if (sendto(sock, respBuffer, sizeof(respBuffer), 0, (struct sockaddr *) & clntAddr, sizeof(clntAddr)) < 0)
然后
客户 - &gt;查询(例如,来自传感器的SELECT ID) - &gt;服务器
服务器 - &gt;查询结果 - &gt;客户端
是否可以再次使用recvfrom()和sendto()? (因为我们已经用于握手)或任何其他方式来处理线程或分叉? 谢谢!