gpt4 book ai didi

c - 从服务器接收 UDP 消息时出现问题

转载 作者:行者123 更新时间:2023-11-30 16:04:56 25 4
gpt4 key购买 nike

我必须通过 UDP 连接到远程服务器并向其发送预定消息才能获取消息。我首先在 TCP 中尝试过,它有效,但在 UDP 中,在我发送消息并监听 receivefrom() 中的回复后,我什么也没得到。谁能告诉我这里可能出了什么问题。

if ((bytes_sent = sendto(sockfd, UDP_MSG, strlen(UDP_MSG), 0, p->ai_addr, p->ai_addrlen)) == -1) {
perror("ClientUDP: Error sending data");
exit(1);
}

printf("Data sent %s\n", UDP_MSG);

len = sizeof(struct sockaddr_storage);

if ((bytes_recv = recvfrom(sockfd, bufudp, MAXDATASIZE-1, 0,(struct sockaddr*)&addr, &len)) == -1) {
perror("Error receiving in UDP");
exit(1);
}



printf("Bytes recv %d\n", bytes_recv);

bufudp[bytes_recv] = '\0';
printf("ClientUDP: Received\n %s \n",bufudp );

使用 scanf() 从键盘输入端口,消息是字符串“HI”。

最佳答案

TCP 和 UDP 不可互换。某些特定协议(protocol)同时使用这两种协议(protocol)(例如 DNS),但大多数协议(protocol)都会选择其中之一。 HTTP(S) 建立在 TCP 之上,因为它需要双向流。许多音频/视频协议(protocol)都是建立在 UDP 之上的,因为丢失/重新排序的数据包(偶尔)并不重要。

简而言之,您的服务器可能只监听 TCP 端口,而不监听 UDP。

如果您知道服务器正在监听 TCP 和 UDP,请检查两台计算机上以及沿途的防火墙。

关于c - 从服务器接收 UDP 消息时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2366601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com