- 论坛徽章:
- 0
|
本帖最后由 iw1210 于 2013-01-19 15:54 编辑
回复 21# sqfasd
ssize_t send(int sockfd, const void *buf, size_t len, int flags);
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
我是看send和sendto函数参数的不同,才这么理解的。
send函数专用于TCP链接,sendto函数专用与UDP连接。
send函数只有一个能联想到客户端地址的参数,就是第一个参数sockfd。在服务器端每一个客户都有一个专用的socket,毫无疑问就可以把它看作这个客户端的地址。
sendto能联想到客户端地址的参数有两个:sockfd 和 dest_addr,但我发现在实际应用中sockfd参数对所有UDP客户都使用同一个数值,所以我推断这个socket是为所有UDP客户使用的,dest_addr才真正是客户端的地址(ip地址和端口号)。
|
|