- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Linux Socket编程(不限Linux)》.pdf
Socket 编程
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏
览器浏览网页时,浏览器的进程怎么与 web 服务器通信的?当你用 QQ 聊天时,Q
Q 进程怎么与服务器或你好友所在的 QQ 进程通信?这些都得靠 socket?那什么
是 socket?socket 的类型有哪些?还有 socket 的基本函数,这些都是本文想介
绍的。本文的主要内容如下:
1、网络中进程之间如何通信?
2、Socket 是什么?
3、socket 的基本操作
3.1、socket()函数
3.2、bind()函数
3.3、listen()、connect()函数
3.4、accept()函数
3.5、read()、write()函数等
3.6、close()函数
4、socket 中TCP 的三次握手建立连接
详解
5、socket 中TCP 的四次握手释放连接
详解
6、一个例子(实践一下)
7、留下一个问题,欢迎大家回帖回
答!!!
1、网络中进程之间如何通信?
本地的进程间通信(IPC)有很多种方
式,但可以总结为下面 4 类:
消息传递(管道、FIFO、消息队列)
同步(互斥量、条件变量、读写锁、文
件和写记录锁、信号量)
共享内存(匿名的和具名的)
远程过程调用(Solaris 门和Sun RPC)
但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要
解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程
PID 来唯一标识一个进程,但是在网络中这是行不通的。其实 TCP/IP 协议族已
经帮我们解决了这个问题,网络层的―ip 地址‖可以唯一标识网络中的主机,而传
输层的―协议+端口‖可以唯一标识主机中的应用程序(进程)。这样利用三元组
(ip 地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以
利用这个标志与其它进程进行交互。
使用 TCP/IP 协议的应用程序通常采用应用编程接口:UNIX BSD 的套接
字(socket )和UNIX System V 的TLI (已经被淘汰),来实现网络进程之间
的通信。就目前而言,几乎所有的应用程序都是采用 socket,而现在又是网络时
代,网络中进程通信是无处不在,这就是我为什么说―一切皆 socket‖。
2、什么是 Socket ?
上面我们已经知道网络中的进程是通过 socket 来通信的,那什么是 socket
呢?socket 起源于 Unix,而 Unix/Linux 基本哲学之一就是―一切皆文件‖,都可
以用―打开 open – 读写 write/read – 关闭 close‖模式来操作。我的理解就
是 Socket 就是该模式的一个实现,socket 即是一种特殊的文件,一些 socket 函
数就是对其进行的操作(读/写 IO、打开、关闭),这些函数我们在后面进行介
绍。
socket 一词的起源
在组网领域的首次使用是在 1970 年 2 月 12 日发布的文献IETF RFC33 中
发现的,撰写者为 Stephen Carr、Steve Crocker 和 Vint Cerf 。根据美国计算
机历史博物馆的记载,Croker 写道:―命名空间的元素都可称为套接字接口。一
个套接字接口构成一个连接的一端,而一个连接可完全由一对套接字接口规定。‖
计算机历史博物馆补充道:―这比 BSD 的套接字接口定义早了大约 12 年。‖
3、socket 的基本操作
既然 socket 是―open—write/read—close‖模式的一种实现,那么 socket 就
提供了这些操作对应的函数接口。下面以 TCP 为例,介绍几个基本的 socket 接
口函数。
3.1、socket()函数
int socket(int domain, int type, int protocol);
您可能关注的文档
- 《JB 10303-2016-T 工频柴油发电机组技术条件》.pdf
- 《JB 3228-1999-T 闭式机械压力机 紧固模具用槽、打(顶)杆孔的分布形式与尺寸》.pdf
- 《JB 6659-2016-T 气动用O形橡胶密封圈尺寸系列和公差》.pdf
- 《JB 6997-2016-T U形内骨架橡胶密封圈》.pdf
- 《JB-T 3736.5-1994 质量管理中常用的统计工具直方图》.pdf
- 《JB-T 6658-1993 气动用O形橡胶密封圈沟槽尺寸和公差》.pdf
- 《JBT 6997-1993 U形内骨架橡胶密封圈》.pdf
- 《JBT6775-1993 SN10系列断路器用绝缘筒》.doc
- 《JBT7538-1994管道用篮式过滤器》.pdf
- 《JBZQ 4224-2016 O形橡胶密封圈》.pdf
文档评论(0)