1 / 47
文档名称:

LINUX网络编程.ppt

格式:ppt   页数:47页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

LINUX网络编程.ppt

上传人:xxj16588 2015/10/13 文件大小:0 KB

下载得到文件列表

LINUX网络编程.ppt

相关文档

文档介绍

文档介绍:LINUX网络编程
行业事业部黄文举

套接口
在Linux下,所有的I/O操作都是通过读写文件描述符而产生的,文件描述符是一个和打开的文件相关联的整数,而套接口就是系统进程和文件描述符通信的一种方法,目前最常用的套接口:字节流套接口和数据报套接口、原始套接口。
TCP套接口
TCP套接口使用TCP建立连接,建立一个TCP连接需要三次握手,基本过程是服务器先建立一个套接口并等待客户端的连接请求;当客户端调用 connect进行主动连接请求时,客户端TCP发送一个SYN,告诉服务器客户端将在连接中发送的数据的初始序列号;当服务器收到这个SYN后也给客户端发一个SYN,里面包含了服务器将在同一连接中发送的数据的初始序列号;最后客户在确认服务器发的SYN。到此为止,一个TCP连接被建立。
UDP套接口
UDP套接口 UDP套接口是无连接的、不可靠的数据报协议;既然它不可靠为什么还要用呢?其一:当应用程序使用广播或多播是只能使用UDP协议;其二:由于他是无连接的,所以速度快。因为UDP套接口是无连接的,如果一方的数据报丢失,那另一方将无限等待,解决办法是设置一个超时。
在编写UDP套接口程序时,有几点要注意:建立套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立一个UDP套接口;由于 UDP是无连接的,ept函数;当UDP套接口调用connect函数时,内核只记录连接放的IP地址和端口,并立即返回给调用进程
SOCKET的位置
应用层程序
TCP
UDP
IP
数据链路层及物理层
流式套
接口
数据报
套接口





网络函数及用法
socket函数:为了执行网络输入输出,一个进程必须做的第一件事就是调用socket函数获得一个文件描述符。
#include <sys/>
#include <sys/> int socket(int family,int type,int protocol);
返回:非负描述字---成功-1---失败
网络函数及用法
connect函数:当用socket建立了套接口后,可以调用connect为这个套接字指明远程端的地址。
#include <sys/>
#include <sys/>
int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen);
返回:0---成功-1---失败
网络函数及用法
bind函数:为套接口分配一个本地IP和协议端口。

#include <sys/>
#include <sys/>
int bind(int sockfd,const struct sockaddr * myaddr,socklen_t
addrlen);
返回:0---成功-1---失败
网络函数及用法
listen函数:listen函数仅被TCP服务器调用,它的作用是将用socket创建的主动套接口转换成被动套接口,并等待来自客户端的连接请求。 #include <sys/> int listen(int sockfd,int backlog);
返回:0---成功-1---失败
网络函数及用法
accept函数:accept函数由TCP服务器调用,
从已完成连接队列头返回一个已完成连接,如果完成连接队列为空,则进程进入睡眠状态。


int accept(int sockfd,struct sockaddr * cliaddr,socklen_t * addrlen);

返回:非负描述字---成功-1---失败