登录
2020-09-25 08:36:37

sendmsg 免费编辑 添加义项名

B 添加义项
?
义项指多义词的不同概念,如李娜的义项:网球运动员、歌手等;非诚勿扰的义项:冯小刚执导电影、江苏卫视交友节目等。 查看详细规范>>
所属类别 :
其他
其他
编辑分类

send,sendto以及sendmsg系统调用用于发送消息到另一个套接字。send函数在套接字处于连接状态时方可使用。

sendto和sendmsg在任何时候都可使用 。

基本信息

  • 外文名称

    sendmsg

  • 含义

    发送消息到另一个套接字

  • 使用方法

    在套接字处于连接状态时

  • 性质

    函数

折叠 编辑本段 sendmsg介绍

se来自nd,sendto,sendmsg360百科方法用于从套接字发送消息。

ssize_t send (int s, co化线由纸告皇镇认十nst void *说策评停燃做msg, size_t len, int fl括参验容而致统春铁依ags);

ssize_t 帝脱降必化些前措话静sendto (int s, const void *msg, size_t len, int flags, const struct sockaddr *to,

sockl西镇盐丝句en_t tolen);

ssize_t sendmsg (int s, const struct msghdr *msg, int flags);

send,sendto以及sendmsg系统调用用于发送消息到另一点乐顺班旧径清波套接字send氢何怀总就称挥朝吗反函数在套接字处于连接状态时方可使用。

sendtosendmsg在任何时候都可使用。

折叠 编辑本段 演示仍啊部玉技存提用法

下面的代码片段演示了send,sendto,sendm雷盟岁sg函数的用法:

#include <sys/socket.h>

#include <netinet/in.h>

#include <unistd.h>

void Recv()

{

struct sockaddr_in serv_addr;

int sock_fd;

char line[15] = "Hello world!";

int 段哥介但后着众穿联移河size = 13;

se调象示会阳rv_addr.sin_family = AF_INET;

serv_addr.四什兵液阻明示差到让sin_addr.s_addr = htonl(INADDR_LOOPBACK);

serv_ad罗余哥衣dr.sin_port = htons(5000);

sock_fd = socket零斗永(AF_INET,SOCK_STREAM,IPPROTO_TCP);

connect(sock_fd,(struct sock钢级日且车背气临副苗addr*)&serv_addr,sizeof(serv_addr));

send(sock点裂培_fd, line, size, 0);

close(sock_fd);

}

#include <sys/socket.h>

#include <netinet/in.h>

#查海破哪希独怕肥收叫include <unistd.h>

void 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,size评带取煤杀话of(receiver_addr));

close(s饭控奏花副率眼少江ock_fd);

}

#include <sys/socket.h> #include <netinet/in.h>

#include <unistd.h>

void 威友否紧乙久它都在主sendmsg()

{

struct sockad前参倒dr_in receiver_addr;

int sock_fd;

char line[15] = "Hello Wor头通雨说接奏非ld!";

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 = h核队烧早积tons(5000);

msg.msg_name = &receiver_addr;

msg.msg_namelen = sizeo哥巴称f(receiver_ad界款单给dr);

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);

}

阅读全文