- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sket原理与编程基础.doc
Socket原理与编程基础
:carter 时间:2011-1 卜22 22:52:24.0
一、Socket 简介
Socket是进程通讯的一种方式,即调用这个网络库的一些APT函数实现分布在不M主机的相关进程之间的数据交换。
几个定义:
(1) IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先耍知道通讯对方的位置,即对方
(2) 端LJ号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端LJ号,不同的进程端LJ号不同,因此在通讯前4
(3) 连接:指W个进程间的通讯链路。
(4) 半相关:网络中用一个三元组可以在全局唯一标志一个进程:
(协议,木地地址,木地端口号)
这样一个三元组,叫做一个半相关,它指定连接的每半部分。
U)全相关:一个完整的网间进程通信需要由两个进程组成,并且只能使用同-?种商层协议。也就是说,不可能通信的一端用T 需要一个五元组来标识:
(协议,本地地址,本地端口号,远地地址,远地端口号)
这样一个五元组,叫做一个相关(association),即两个协议相同的半相关方能组合成一个合适的相关,或完全指定组成一连朽
二、客户/服务器模式
在TCP/IP网络应用中,通信的W个进程间相互作用的主要模式是容户/服务器(Client/Server,C/S)模式,即容户向服务器发 户/服务器校式的建立?于以下两点:
(1) 首先,建立网络的起因足网络中软硬件资源、运算能力和信息不均等,需耍共亨,从而造就拥有众多资源的主机提供服务,
(2) 其次,M间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享lAl存缓冲区,因此需耍一种机制为希望 就是基于客户/服务器模式的TCP/IP。
服务器端:
其过程是首先服务器方要先冶动,并根据请求提供相应服务:
(1) 打开一通信通道并告知木地主机,它愿意在某一公认地址上的某端口(如FTP的端口可能为21)接收客户请求;
(2) 等待客户请求到达该端门;
(3) 接收到客户端的服务治求时,处理该治求并发送应答信号。接收到并发服务治求,要激活一新进程来处理这个客户治求(女I 并不需要对其它诸求作出应答。服务完成后,关闭此新进程与容户的通信链路,并终止。
(4) 返回第(2)步,等待另一客户请求。
(5) 关闭服务器 客户端:
(1) 打开一通信通道,并连接到服务器所在主机的特定端Lb
(2) 向服务器发服务请求报文,等待并接收应答:继续提出请求
(3) 请求结束后关闭通信通道并终止。
从上面所描述过程町知:
客户与服务器进程的作用是非对称的,因此代码不同。
服务器进程一般是先启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
介绍完基础知识,下Uf就介绍一些API函数:
创建套接字——socket ()
应用程序在使用套接字前,首先必须拥有一个套接字,系统调用socket ()向应用程序提供创建套接字的乎段,艽调用格式如下:
SOCKET PASCAL FAR socket (int af, int type, int protocol):
该调用要接收三个参数:af、type、protocol。参数af指定通信发生的区域:AFJJNIX、AF_INET、AF_NS等,而DOS、WINDOWS ?| 族相同。参数type描述要建立的套接字的类型。这里分三种:
一是TCP流式套接字(SOCK STREAM)提供了一个而向连接、可靠的数据传输服务,数据无差错、无ifi复地发送,且按发送顺. 字节流,无长度限制。文件传送协议(FTP)即使用流式套接字。
二是数据报式套接字(SOCK_DGRAM)提供丫一个无连接服务。数据包以独立包形式被发送,不提供无错保证,数据可能丢失自 据报式套接字。
三是原始式套接字(SOCK RAW)该接口允许对较低层协议,如IP、ICMP直接访问。常用于检验新的I办议实现或访问现有服务 参数protocol说明该套接字使用的特定协议,如果调用者不希望特别指定使用的协议,则置为0,使用默认的连接模式。根据这 时返回一个整型袞接字号。因此,socket ()系统调川实际上指定丫相关五元组中的“协议”这一元。
指定本地地址 bind ()
当一个套接字用socket ()创建后,存在一个名字空间(地址族),但它没有被命名。bind()将套接字地址(包括本地主机地址和本 予套接字,以指定本地半相关。其调用格式如下:
int PASCAL I;AR bind (SOCKET s, const struct sockaddr I;AR * name, int namelen):
参数s是由socketO调用返回的并且未作连接的套接字描述符(套接字号)。参数name是赋给套接字s的本地地址(名字),
您可能关注的文档
最近下载
- 基于PLC的地铁自动售票机电气控制部分的设计.doc VIP
- Unit 4 Helping in the community 词汇句型专项训练(含答案解析)人教PEP版2025英语四年级上册.pdf
- 2025年成人高等教育学士学位英语水平考试(成人英语三级)历年参考题库含答案详解.docx VIP
- 青春期女生生理知识.pptx VIP
- Unit 4 Helping in the community 补全对话与短文专项训练(含答案解析)人教PEP版2025英语四年级上册.docx
- 碎纸屑压块机设计.docx VIP
- 一台触摸屏控制多台plc.pdf VIP
- 中医医案——颈椎病(三).docx VIP
- 《空乘旅游英语视听说》课件——In-flight Meals 飞机餐.pdf VIP
- 婴幼儿反复喘息诊治、管理、预防临床实践循证指南(2025).pptx VIP
原创力文档


文档评论(0)