Linux 的套接字编程 (2)
来源:互联网 发布:晟元数据 刘滨 编辑:程序博客网 时间:2024/06/05 13:23
一、sendto函数
- int Sendto(int sockfd, const void * data, int data_len, unsigned int flags, struct sockaddr *remaddr,int remaddr_len)
功能:基于UDP发送数据报,返回实际发送的数据长度,出错时返回-1
参数说明:
sockfd:套接字描述符
data:指向要发送数据的指针
data_len:数据长度
flags:一直为0
remaddr:远端地址:IP地址和端口号
remaddr_len :地址长度
举例:sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&address, sizeof(address));
二、send函数
- int Send(int sockfd, const void * data, int data_len, unsigned int flags)
功能:
在TCP连接上发送数据,返回成功传送数据的长度,出错时返回-1。
send会将外发数据复制到OS内核中,也可以使用send发送面向连接的UDP报文。
参数说明:
sockfd:套接字描述符
data:指向要发送数据的指针
data_len:数据长度
flags:一直为0
举例(p50):send(s,req,strlen(req),0);
三、recvfrom函数
- int recvfrom(int sockfd, void *buf, int buf_len,unsigned int flags,struct sockaddr *from,int fromlen);
功能:从UDP接收数据,返回实际接收的字节数,失败时返回-1
参数说明:
Sockfd:套接字描述符
buf:指向内存块的指针
buf_len:内存块大小,以字节为单位
flags:一般为0
from:远端的地址,IP地址和端口号
fromlen:远端地址长度
举例:recvfrom(sockfd,buf,8192,0, ,(struct sockaddr *)&address, sizeof(address));
四、recv函数
- int recv(int sockfd, void *buf, int buf_len,unsigned int flags);
功能:
从TCP接收数据,返回实际接收的数据长度,出错时返回-1。
服务器使用其接收客户请求,客户使用它接受服务器的应答。如果没有数据,将阻塞,如果收到的数据大于缓存的大小,多余的数据将丢弃。也可以使用recv接收面向连接的UDP的报文
参数说明:
Sockfd:套接字描述符
Buf:指向内存块的指针
Buf_len:内存块大小,以字节为单位
flags:一般为0
举例:recv(sockfd,buf,8192,0)
五、close函数
- close(int sockfd);
功能:
撤销套接字.
如果只有一个进程使用,立即终止连接并撤销该套接字,如果多个进程共享该套接字,将引用数减一,如果引用数降到零,则撤销它。
参数说明:
Sockfd:套接字描述符
举例:close(socket_descriptor)
六、其它套接字函数
gethostname 获得主机名
getpeername 获得与套接口相连的远程协议地址
getsockname 获得套接口本地协议地址
gethostbyname 根据主机名取得主机信息
gethostbyaddr 根据主机地址取得主机信息
getprotobyname 根据协议名取得主机协议信息
getprotobynumber 根据协议号取得主机协议信息
getservbyname 根据服务名取得相关服务信息
getservbyport 根据端口号取得相关服务信息
getsockopt/setsockopt 获取/设置一个套接口选项
ioctlsocket 设置套接口的工作方式
七、UDP调用序列
八、TCP调用序列
- Linux 的套接字编程 (2)
- Linux 的套接字编程 (一)
- Linux 的套接字编程 (一)
- linux套接字编程
- Linux - 套接字编程
- linux套接字编程
- linux 套接字编程
- Linux--编程--套接字
- Linux编程---套接字
- linux套接字编程
- Linux套接字编程
- linux套接字编程
- Linux套接字编程
- Linux网络编程(2):基于TCP的套接字编程
- Linux网络编程(2):基于TCP的套接字编程
- Linux网络编程--(8)进程间的套接字(域套接字)
- linux套接字编程笔记(二)--简单的TCP套接字应用程序
- Linux下的raw Socket(原始套接字)编程
- Cookie与SESSION的区别
- c++ string详解
- 好好学习,天天向上!
- Android中的Handler的使用
- Excel VBA - Application对象
- Linux 的套接字编程 (2)
- 不用循环计算一个数是否是2的次方
- Linux后台执行程序
- Grub error:unknown filesystem 问题分析及解决
- 比较三个数的大小
- ASP.net中实现放大镜(商场中查看商品)
- 约瑟夫问题
- 何去何从。。。
- [C#, WPF] 根据鼠标距离窗口中心的距离设置其背景色