1 / 12
文档名称:

LinuxC编程---网络编程.doc

格式:doc   大小:18KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

LinuxC编程---网络编程.doc

上传人:xxj16588 2016/8/7 文件大小:18 KB

下载得到文件列表

LinuxC编程---网络编程.doc

相关文档

文档介绍

文档介绍:LinuxC 编程--- 网络编程 LinuxC 编程--- 网络编程新一篇: 新一篇: 手把手教你玩转 SOCKET 模型之重叠 I/O 篇网络编程,一定离不开套接口;那什么是套接口呢?在 Linu x 下, 所有的 I/O 操作都是通过读写文件描述符而产生的, 文件描述符是一个和打开的文件相关联的整数, 这个文件并不只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个终端等, 而套接口就是系统进程和文件描述符通信的一种方法。目前最常用的套接口是字:字节流套接口( 基于 TCP) 和数据报套接口( 基于 UDP) , 当然还有原始套接口( 原始套接口提供 TCP 套接口和 UDP 套接口所不提供的功能,如构造自己的 TCP 或 UDP 分组) 等,我们这里主要介绍字节流套接口和数据报套接口。要学****网络编程,一定离不开网络库的函数,在 Linux 系统下, 可以用"man 函数名" 来得到这个函数的帮助, 不过为了照顾 E 文不大好的朋友,下面就将常用的网络函数和用法列出来供大家参考: 1、 socket 函数:为了执行网络输入输出,一个进程必须做的第一件事就是调用 socket 函数获得一个文件描述符。----------------------------------------------------------- -------------------------- #include int socket(int family,int type,int protocol); 返回:非负描述字---成功-1 ---失败----------------------------------------------------------- -------------------------- 第一个参数指明了协议簇,目前支持 5 种协议簇,最常用的有(IPv4 协议)和 6(IPv6 协议) ;第二个参数指明套接口类型,有三种类型可选: SOCK_STREAM( 字节流套接口)、 SOCK_DGRAM( 数据报套接口)和 SOCK_RAW( 原始套接口) ;如果套接口类型不是原始套接口,那么第三个参数就为 0。 2、 connect 函数:当用 socket 建立了套接口后,可以调用 connect 为这个套接字指明远程端的地址;如果是字节流套接口, connect 就使用三次握手建立一个连接;如果是数据报套接口, connect 仅指明远程端地址,而不向它发送任何数据。----------------------------------------------------------- -------------------------- #include int connect(int sockfd,const struct sockaddr * servaddr,socklen_t addrlen); 返回: 0 ---成功-1 ---失败----------------------------------------------------------- -------------------------- 第一个参数是 socket 函数返回的套接口描述字;第二和第三个参数分别是一个指向套接口地址结构的指针和该结构的大小。这些地址结构的名字均已“ sockaddr_ ”开头,并以对应每个协议族的唯一后缀结束。以 IPv4 套接口地址结构为例,它以“ sockaddr_in ”命名,定义在头文件;以下是结构体的内容: ----------------------------------------------------------- -------------------------- struct in_addr { in_addr_t s_addr; /* IPv4 地址*/ }; struct sockaddr_in { uint8_t sin_len; /* 无符号的 8 位整数*/ sa_family_t sin_family; /* 套接口地址结构的地址簇,这里为 */ in_port_t sin_port; /* TCP 或 UDP 端口*/ struct in_addr sin_addr; char sin_zero[8]; }; ----------------------------------------------------------- -------------------------- 3、 bind 函数: 为套接口分配一个本地 IP 和协议端口, 对于网际协议,协议地址是 32位 IPv4 地址或 128 位 IPv6 地址与 16位的 TCP 或 UDP 端口号