linux sendto 源码,sendto · Linux C API 参考手册 · 看云
## sendto ##
经socket传送数据
### 相关函数 ###
send , sendmsg,recv , recvfrom , socket
### 表头文件 ###
```
#include
#include
```
### 定义函数 ###
```
int sendto(int s, const void *msg, int len, unsigned int flags,
const struct sockaddr *to, int tolen);
```
### 函数说明 ###
sendto() 用来将数据由指定的socket传给对方主机。参数s为已建好连线的socket,如果利用UDP协议则不需经过连线操作。参数msg指向欲连线的数据内容,参数flags 一般设0,详细描述请参考send()。参数to用来指定欲传送的网络地址,结构sockaddr请参考bind()。参数tolen为sockaddr的结果长度。
### 返回值 ###
成功则返回实际传送出去的字符数,失败返回-1,错误原因存于errno 中。
### 错误代码 ###
EBADF 参数s非法的socket处理代码。
EFAULT 参数中有一指针指向无法存取的内存空间。
WNOTSOCK canshu s为一文件描述词,非socket。
EINTR 被信号所中断。
EAGAIN 此动作会令进程阻断,但参数s的soket为补课阻断的。
ENOBUFS 系统的缓冲内存不足。
EINVAL 传给系统调用的参数不正确。
### 范例 ###
```
#include
#include
#include
#include
#define PORT 2345 /*使用的port*/
main(){
int sockfd,len;
struct sockaddr_in addr;
char buffer[256];
/*建立socket*/
if(sockfd=socket (AF_INET,SOCK_DGRAM,0))<0){
perror (“socket”);
exit(1);
}
/*填写sockaddr_in 结构*/
bzero ( &addr, sizeof(addr) );
addr.sin_family=AF_INET;
addr.sin_port=htons(PORT);
addr.sin_addr=hton1(INADDR_ANY) ;
if (bind(sockfd, &addr, sizeof(addr))<0){
perror(“connect”);
exit(1);
}
while(1){
bezro(buffer,sizeof(buffer));
len = recvfrom(socket,buffer,sizeof(buffer), 0 , &addr &addr_len);
/*显示client端的网络地址*/
printf(“receive from %s\n “ , inet_ntoa( addr.sin_addr));
/*将字串返回给client端*/
sendto(sockfd,buffer,len,0,&addr,addr_len);”
}
}
```
### 执行 ###
请参考recvfrom()
linux sendto 源码,sendto · Linux C API 参考手册 · 看云相关推荐
- linux fcntl注销信号,fcntl · Linux C API 参考手册 · 看云
## fcntl ## 文件描述词操作 ### 相关函数 ### open,flock ### 表头文件 ### ``` #include #include ``` ### 定义函数 ### ``` ...
- linux printf 底层api,printf · Linux C API 参考手册 · 看云
## printf ## 格式化输出数据 ### 相关函数 ### scanf,snprintf ### 表头文件 ### ``` #include ``` ### 定义函数 ### ``` int ...
- linux python源码安装,linux上源码安装python
以下例子基于python 2.7.9,其他版本同理.# 1.下载python# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tg ...
- linux nat源码分析,Linux下NAT/NAPT规则源码分析
前面有一篇文章分析了为什么在PREROUTING做DNAT对本地连接不起作用?本文再紧接着上文,深入分析一下NAT/NAPT的规则. 事情的起因要从上的那篇的文章说起,因为我的本科生毕业设计也是做P2 ...
- Linux编译程序源码环境,Linux下对nodejs环境进行源码编译并部署云应用
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言. 该环境安装非常简单,这里 ...
- linux top 源码,在Linux系统中下载源码包安装Topgrade的方法,附Topgrade选项说明
本文介绍在Linux操作系统中下载源码包安装Topgrade的方法,即下载topgrade-v2.3.0-x86_64-unknown-linux-gnu.tar.gz包并进行安装,经测试,在Ubun ...
- linux 远程控制 源码,基于Linux的远程控制技术服务端实现
远程控制系统的背景与需求分析 2.1 Linux平台下远程控制系统的产生 远程控制系统在现代社会有着越来越广泛的应用.远程控制中的嵌入技术.远程控制的数据处理与传输.远程控制的管理和远程控制的终端都取 ...
- linux内核源码漫游,Linux内核源代码漫游
Linux源代码,以帮助读者对源代码的体系结构以及很多相关的unix特性的实现有一个很好的理解.目标是帮助对Linux不甚了解的有经验的C程序员对整个Linux的设计有所了解.这也就是为什么内核漫游的 ...
- linux mod_ssl源码安装,linux下不重新编译apache添加安装mod_ssl模块和错误的处理方法...
安装步骤 1.进入apache源码目录. 2.进入module文件夹下的ssl目录. 3.找到oepnssl 的include路径,ubuntu系统是在/usr/include/openssl目录. ...
最新文章
- 257.二叉树的所有路径
- 实例解读:如何减少Docker中的Java内存消耗
- UVA 11054 Wine trading in Gergovia
- D-Link 不止暴露固件镜像密钥,还被曝5个严重0day
- 为什么我不建议你用去 “ ! = null “ 做判空?
- 如何利用手机的OCR文字识别功能制作扫描件?
- OverFeat 详解
- 图片太大怎么压缩变小?图片如何压缩?
- 二进制转十进制python程序_二进制转换(使用Python实现十进制转换器)
- 计算机显示器分辨率,电脑分辨率多少合适,详细教您电脑显示器分辨率怎么调整...
- Android直播中弹幕效果实现
- 华为防火墙(VRRP)
- 适配器模式【Adapter Pattern】
- 干货 | 科研人的KPI怎么算,H指数和G指数是什么
- SQL优化--not in和or出的问题
- 1、Anaconda安装TensorFlow(一)
- oracle EM的安装配置
- TemplatesImpl在Shiro中的利用
- WORD另存为PDF时出现乱码的解决方案
- cad java web_【浩辰CAD和锐洋Java web打印控件哪个好用】浩辰CAD和锐洋Java web打印控件对比-ZOL下载...
热门文章
- Boolean类型(基本与包装类型)
- Android APK包反编译详细步骤教程
- mysql 黑窗口连接数据库以及常用数据类型
- 四类异常检测算法综述:Isolation Forest、LOF、PCA及DAGMM
- kettle获取当前日期_kettle获取系统时间
- idea ubuntu 汉字_ubuntu下 Intellij IDEA菜单栏中文乱码和常用设置
- 基本语言细节---C++ 虚函数表解析 陈皓
- 【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】
- 实现Callable接口
- 刚刚开始学习java,自己慢慢写了最基础的吃货联盟