socket编程:从send函数和sendto函数参数的不同看TCP和UDP的差别。

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函数专用于TCP链接,sendto函数专用与UDP连接。
send函数只有一个能联想到客户端地址的参数,就是第一个参数sockfd。在服务器端每一个客户都有一个专用的socket,毫无疑问就可以把它看作这个客户端的地址映射。
sendto能联想到客户端地址的参数有两个:sockfd 和 dest_addr,但在实际应用中对所有UDP客户sockfd参数都使用同一个值,所以可以推断这个socket是为所有UDP客户使用的,不能看做目的客户端的地址映射,只有dest_addr才是目的客户端的地址映射(ip地址和端口号)。

你可能感兴趣的:(socket编程:从send函数和sendto函数参数的不同看TCP和UDP的差别。)