《linux网络编程超级详细笔记》.pdf

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《linux网络编程超级详细笔记》.pdf

1.linux 网络知识介绍 1.1 客户端程序和服务端程序 网络程序和普通程序的最大区别就是网络程序分为两个部分:客户端和服务器端。 网络程序是服务器端先启动,等待客户端的连接。一般服务器端绑定在一个端口进行监 听,直到有一个客户端发来了请求。 1.2 常用的命令 由于网络程序由两个部分组成,所以调试起来比较麻烦,所以,我们先来了解一下常用 的命令。 netstat 此命令用来显示网络的连接、路由表和接口统计等网络信息。Netstat 有许多选项,最 常用的是-an 用来显示详细的网络状态。 telnet telnet 是一个远程控制程序,但是我们可以用它来调试我们的服务器端程序。比如我们 的服务器在监听8888 端口,我们可以用telnet localhost 8888 来查看服务器的状况。 1.3TCP/UDP 介绍 TCP (Tranfer Control Protocal )传输控制协议是一个面向连接的协议,当使用这个协议 时,网络可以保证客户端和服务器端的连接是可靠的、安全的。 UDP (User Datagram Protocal)用户数据报协议是一种非面向连接的协议,它不保证网 络程序的连接是可靠的,所以,一般的网络程序都使用TCP 协议。 2.初等网络函数介绍 Linux 系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket 和其它几个 函数的调用,会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述 符来操作,这就是 linux 的设备无关性的好处.我们可以通过向描述符读写操作实现网络之间 的数据交流. 2.1 socket int socket(int domain, int type,int protocol) domain: 说明我们网络程序所在的主机采用的通讯协族(AF_UNIX 和 AF_INET 等). AF_UNIX 只能够用于单一的Unix 系统进程间通信,而AF_INET 是针对Internet 的, 因而可以允 许在远程 主机之间通信(当我们 man socket 时发现 domain 可选项是 PF_*而不是AF_*, 因 为glibc 是posix 的实现 所以用PF 代替了AF,不过我们都可以使用的). type:我们网络程序所采用的通讯协议(SOCK_STREAM,SOCK_DGRAM 等) SOCK_STREAM 表明我们用的是TCP 协议,这样会提供按顺序的,可靠,双向,面向连接的比特流. SOCK_DGRAM 表明我们用的是UDP 协议,这样只会提供定长的,不可靠,无连接的通信. protocol: 由于我们指定了 type, 所以这个地方我们一般只要用 0 来代替就可以了 socket 为网络通讯做基本的准备.成功时返回文件描述符,失败时返回-1,看 errno 可知道出错 的详细情况. 2.2 bind int bind(int sockfd, struct sockaddr *my_addr, int addrlen) sockfd:是由socket 调用返回的文件描述符. addrlen:是sockaddr 结构的长度. my_addr:是一个指向sockaddr 的指针. 在中有 sockaddr 的定义 struct sockaddr{ unisgned short as_family; char sa_data[14]; }; 不过由于系统的兼容性, 我们一般不用这个头文件, 而使用另外一个结构(struct sockaddr_in) 来代替.在中有sockaddr_in 的定义 struct sockaddr_in{ unsigned short sin_family; unsigned short int sin_port;

文档评论(0)

wfkm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档