【发布时间】:2021-11-19 16:51:52
【问题描述】:
在我的代码中,我有这个 sn-p:
char temp_buff[2048] = "";
strcpy(temp_buff, json_object_to_json_string(hb));
printf("%s\n", temp_buff);
char *str;
int fd = 0;
struct sockaddr_in demoserverAddr, cliaddr;
fd = socket(AF_INET, SOCK_STREAM, 0);
if (fd < 0)
{
debug_level > 0 && printf("[SKT]\tError creating socket\n");
}
else
{
demoserverAddr.sin_family = AF_INET;
demoserverAddr.sin_port = htons(9100);
demoserverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(demoserverAddr.sin_zero, '\0', sizeof(demoserverAddr.sin_zero));
}
memset(&cliaddr, 0, sizeof(cliaddr));
int len=sizeof(cliaddr);
sendto(fd, temp_buff, strlen(temp_buff),MSG_CONFIRM, (const struct sockaddr *)&cliaddr, len);
另一方面,我在终端中写netcat -u -l 9100 以查看传入的消息,但没有任何反应。为什么?
【问题讨论】:
-
尝试
SOCK_DGRAM用于UDP 而不是SOCK_STREAM -
同样的事情,还是谢谢你
-
检查
sendto的返回值是否有错误。否则,请发布Minimal, Reproducible Example 供我们测试。 -
错误-1:无效参数
-
你不应该在
sendto调用中使用demoserverAddr而不是cliaddr吗?