sendto():尝试使用UDP从服务器发送响应时传输端点未连接错误

时间:2015-12-15 12:41:32

标签: c networking udp client-server sendto

我试图使用UDP做简单的客户端 - 服务器程序,我将一个字符串从客户端发送到服务器,服务器确认“得到它”。事情正常,直到我尝试发送确认。发送以生成“传输端点未连接”错误。 我正在使用sentto()以下列格式发送服务器。

sendto(sid, message, strlen(message), 0, (struct sockaddr *) &saddr, len);

并从

收到
recvfrom(sid, message, 50, 0, (struct sockaddr*) &caddr, &len);

我正在使用AF_UNIX套接字。当我把它移植到AF_INET时,程序工作正常。

1 个答案:

答案 0 :(得分:3)

您应该使用recvfrom()从套接字读取并将收到的套接字信息传递回sendto(),如下所示:

struct sockaddr_in client;
socklen_t slen = sizeof(client);

int l  = recvfrom(fd, buf,      sizeof(buf), 0, &client, &slen);
int st = sendto  (fd, "got it", 6,           0, &client,  slen);

这应该按预期工作