我试图使用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时,程序工作正常。
答案 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);
这应该按预期工作