三种发送UDP包的函数

来源:互联网 发布:淘宝被罩 编辑:程序博客网 时间:2024/06/14 11:24
send()的例子:
#include#include#includevoid Recv(){struct sockaddr_in serv_addr;int sock_fd;char line[15] = "Hello world!";int size = 13;serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);serv_addr.sin_port = htons(5000);sock_fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);connect(sock_fd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));send(sock_fd, line, size, 0);close(sock_fd);}


sendto()的例子:
#include#include#includevoid Sendto(){sockaddr_in receiver_addr;int sock_fd;char line[15] = "Hello World!";sock_fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);receiver_addr.sin_family = AF_INET;receiver_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);receiver_addr.sin_port = htons(5000);sendto(sock_fd, line, 13, 0,(struct sockaddr*)&receiver_addr,sizeof(receiver_addr));close(sock_fd);}


sendmsg()的例子:
#include #include#includevoid sendmsg(){struct sockaddr_in receiver_addr;int sock_fd;char line[15] = "Hello World!";struct msghdr msg;struct iovec iov;sock_fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);receiver_addr.sin_family = AF_INET;receiver_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);receiver_addr.sin_port = htons(5000);msg.msg_name = &receiver_addr;msg.msg_namelen = sizeof(receiver_addr);msg.msg_iov = &iov;msg.msg_iovlen = 1;msg.msg_iov->iov_base = line;msg.msg_iov->iov_len = 13;msg.msg_control = 0;msg.msg_controllen = 0;msg.msg_flags = 0;sendmsg(sock_fd,&msg,0);close(sock_fd);}


原创粉丝点击