Linux下套接字编程.ppt
《Linux下套接字编程.ppt》由会员分享,可在线阅读,更多相关《Linux下套接字编程.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux套接字编程套接字是一种进程间通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,除了可以在本地运行,还可以在网络中运行。套接字接口(socket interface)由伯克利版本UNIX引入,可以认为是对管道概念的扩展一台机器上的进程可以使用套接字与另一台机器上的进程通信。因此客户与服务器可以分散到网络中。同一台机器的进程间也可以用套接字通信。套接字概念微软的windows系统也通过可公开获取的windows socket技术规范实现了套接字接口,因此windows程序可以通过网络和Linux/UNIX计算机进行通信,实现客户/服务器系统,反之亦然。创建套
2、接字#include#include 返回套接字描述符int socket(int domain,int type,int protocol);domain:域type:指定套接字的通信类型protocol:指定使用的协议域(Domain)指定套接字通信中使用的网络介质,包括地址格式。最常用的有以下两种:AF_INET,即互联网络,基于,即互联网络,基于IP协议,并且协议,并且每个服务对应一个端口号,套接字地址由每个服务对应一个端口号,套接字地址由IP地址地址+端口号决定;端口号决定;AF_UNIX,基于本地机器,底层协议使用,基于本地机器,底层协议使用文件输入文件输入/输出,地址为绝对路径的
3、文件名。输出,地址为绝对路径的文件名。类型(Type)流套接字:由类型SOCK_STREAM指定,基于TCP/IP实现,提供一个有序、可靠、双向字节流的连接,发送的数据不会丢失、乱序、重复。大的消息会被分块、传输、重组,很像一个文件流。数据报套接字:由SOCK_DGRAM指定,基于UDP/IP协议,不建立和维持可靠连接,开销小。协议(protocol)我们重点讨论UNIX网络套接字和文件系统套接字,不需要选择特定协议,只要默认值(0)即可。命名套接字#include int bind(int socket,const struct sockaddr*address,size_t address
4、_len);其中,socket是套接字的标示符。address是套接字地址。address_len是地址长度。套接字地址AF_UNIX:地址格式由sockaddr_un来描述struct sockaddr_unsa_family_t sun_family char sun_path;AF_INET:地址格式由sockaddr_in来指定struct sockaddr_inshort int sin_family;unsigned short intsin_port;structin_addrsin_addr;四字节IP地址创建套接字队列#include Int listen(int socke
5、t,int backlog);套接字队列中,等待处理的进入连接的个数最多不能超过backlog这个数字,多出的连接请求将被拒绝,导致客户连接失败。当服务器正忙于处理一个客户请求时,后续的客户连接放入队列等待处理。函数执行成功返回0,失败返回-1.接受连接#include int accept(int socket,struct sockaddr*address,size_t*address_len);连接客户的地址将被放入address参数指向的sockaddr结构中。address_len指定客户结构的长度,如果客户地址的长度超出这个值将被截断,所以必须先得到这个合适的值。请求连接#incl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 套接 编程
限制150内