客户端和服务器之间的UDP握手和数据交换

时间:2017-12-06 12:49:36

标签: sockets udp

握手:

  • 客户 - > SNK? - >服务器
  • 服务器 - >是 - >客户, 握手保持这种方式并且完美地运作。

    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()? (因为我们已经用于握手)或任何其他方式来处理线程或分叉? 谢谢!

0 个答案:

没有答案