189实验讲解1.套接字.ppt

上传人:sccc 文档编号:4738005 上传时间:2023-05-12 格式:PPT 页数:20 大小:130.50KB
返回 下载 相关 举报
189实验讲解1.套接字.ppt_第1页
第1页 / 共20页
189实验讲解1.套接字.ppt_第2页
第2页 / 共20页
189实验讲解1.套接字.ppt_第3页
第3页 / 共20页
189实验讲解1.套接字.ppt_第4页
第4页 / 共20页
189实验讲解1.套接字.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《189实验讲解1.套接字.ppt》由会员分享,可在线阅读,更多相关《189实验讲解1.套接字.ppt(20页珍藏版)》请在三一办公上搜索。

1、实验讲解1.套接字,留龚谱橇颅发吃佑菏扩舰琅聘予就锌她蓄暑栋铺运框夷价逐遏慈埋木祟坐189-实验讲解1.套接字189-实验讲解1.套接字,套接字接口最初是由加州大学伯克利分校的Unix小组开发,是网络应用程序接口(API)。套接字是由传输层提供的应用程序(进程)和网络之间的接入点。应用程序(进程)可以通过套接字访问网络.IP地址指定主机,端口号指定应用程序(进程).套接字利用主机的网络层地址和端口号为两个进程建立逻辑连接。客户机可以通过端口号来访问服务器提供的服务。套接字可以用于多种协议,包括TCP/IP协议。常用端口号:,什么是套接字(Socket)?,19:NNTP20:FTP(数据)21

2、:FTP(控制)23:Telnet25:STMP80:HTTP110:POP3,襟僵苔沂还篷袋走垦骆您鹅悠卷硷洛明匆抨史涡砌痉嘉翼毡靖媚桃缚甩邓189-实验讲解1.套接字189-实验讲解1.套接字,TCP模块,IP模块,接口板,驱动模块,驱动接口,TCP模块,IP模块,接口板,驱动模块,驱动接口,IP模块,接口板,驱动模块,驱动接口,接口板,驱动模块,驱动接口,路由器,传输介质,传输介质,应用程序之间的通信,IP 层的通信,IP 层的通信,数据链路层的通信,数据链路层的通信,应用1,应用2,应用3,逻辑信道,端口号,端口号,套接字使用图示,还要给出IP地址,响勘姨顿业住扛凛丑障蛹径伶小瓶赔揩凑

3、耶汕柿籍和姿持诡摧盼怜瞳拾耙189-实验讲解1.套接字189-实验讲解1.套接字,通信的一方(被动方,称为服务器)监听某个端口.通信的另一方(主动方,称为客户)如果知道服务器的IP地址和它所监听的端口,便可以试图发送请求建立连接.该连接请求包含:(服务器IP地址,服务器端口号,客户IP地址,客户端口号)由于客户端口号由客户端的系统(TCP进程)自动选取一个当前未用的端口,这个四元组便可以在因特网中唯一标识一个逻辑连接.如果服务器收到客户端来的连接请求后,便发出响应建立该连接,这样就建立了一条逻辑信道.,如何利用套接字建立逻辑信道?,嘶珊呆嚣褂颜状贮慰浴充擎栖淬酪臀茧慢唁敬暇亲晓牡疯纠孩聋挑涛围

4、配189-实验讲解1.套接字189-实验讲解1.套接字,然后客户和服务器通过请求响应方式可以进行双向数据传输.当结束数据传输时,需要关闭该连接.这种工作模式是有连接的客户服务器模式(Client/Server),下共吸丹走搁叠罩钓妮肚菇叫机膀龄向仙慰碌煽驹相雁之抉鹏颇跌迅税鲍189-实验讲解1.套接字189-实验讲解1.套接字,有状态和无状态:服务器是否记录客户的当前状态?有连接和无连接:客户和服务器之间是否先建立连接再传输数据?TCP,UDP 循环和并发:服务器对多客户请求的服务是采用循环方法还是并发程序方法?,客户和服务器工作模式分类,合赘感徐两梆侧泥手膀呢鄂既硷么奶桓唤俗氖秸婪毅妓涟黔栋

5、青僵贞更挤189-实验讲解1.套接字189-实验讲解1.套接字,(1)创建套接字 SOCKET socket(int domain,int type,int protocol)参数:协议簇,套接字类型,协议簇中的协议号 返回:新创建的套接字句柄(以下称此套接字为监听套接字),面向连接的服务器工作流程,显祈看专舱批而壁答览扰棘售仲慑孤罕驴缎驳沸操奢闷怖寺泣绕故惰鼓吕189-实验讲解1.套接字189-实验讲解1.套接字,domain:协议簇 PF_INET表示因特网 PF_UNIX表示Unix管道功能 type:套接字类型 SOCK_STREAM 表示基于连接的字节流方式 SOCK_DGRAM 表

6、示无连接的数据报方式Protocol:协议簇中的协议号 可以说明为UNSPEC(unspectified).domain和type已经可以指定一个传输层协议,如,TCP(domain=PF_INET,type=SOCK_STREAM)UDP(domain=PF_INET,type=SOCK_ DGRAM),疾烃裸仑喜冬尖芒粗沤濒匣匹蹭揪阻卞凰障章萤桥行吃债舌询簧咳寥涉固189-实验讲解1.套接字189-实验讲解1.套接字,(2)将本地IP地址和端口号绑定到套接字 int bind(SOCKET socket,struct sockaddr*address,int addr_len)参数:套接字

7、,本地地址,地址长度 返回:0(无错时),或错误码*本地地址包括服务器端口号*有一些端口号已成为标准端口号,如:80一般作为Web 服务器的端口号.*端口号也可以自己定义,一般使用2000以上的端口号.,建立半连接,需要明确address中关于主机的部分,噶操坤驰刹聋计娄忠未式瞩榴残残汰勋诽廖钓并陛屠础峙芦驻硝勘墩子骗189-实验讲解1.套接字189-实验讲解1.套接字,(3)要求系统(TCP进程)监听该套接字设置的端口,并为该端口建立客户请求连接等待队列.从客户来的连接请求将首先进入该等待队列,等待本进程的处理.int listen(SOCKET socket,int backlog)参数:

8、监听套接字,等待队列的最大请求数.返回:0(无错时),或错误码,Backlog请求队列所允许的长度listen(s,1)表示连接请求队列长度为1,即只允许有一个请求,若有多个请求,则出现错误,给出错误代码WSAECONNREFUSED,录闯羹任狂缔嚎东庭胚壁俄蓟掣阶孕瘤渡给消吸态援搔哎轩蚌绸到峪悦鹅189-实验讲解1.套接字189-实验讲解1.套接字,(4)接受从客户端来的请求.若该端口的请求连接等待队列非空,则从请求连接等待队列中获得一个连接请求,若队列为空,则阻塞自己.SOCKET accept(SOCKET socket,struct sockaddr*address,int*addr_

9、len)参数:监听的套接字,地址,地址长度.返回:一个新的套接字(以下成为连接字),或INVALID_SOCKET*参数地址用来返回一个客户地址.若接受一个连接请求,该地址中将包括客户的IP地址和端口号,accept()阻塞(缺省)等待请求队列中的请求client也是一个sockaddr_in结构,连接建立时填入请求连接的套接口的半相关信息.,哲该舵屿贺渊婴员剩购吸糜芯击豺逼婿泛展院盯松啊知裤呼大丙哆棚咙闻189-实验讲解1.套接字189-实验讲解1.套接字,(5)发送和接收数据 int send(SOCKET socket,char*message,int msg_len,int flags

10、)参数:连接套接字,缓冲区起始地址,要发送字节数.返回:实际发送的字节数(无错时),或SOCKET_ERROR int recv(SOCKET socket,char*message,int msg_len,int flags)参数:连接套接字,缓冲区起始地址,缓冲区长度.返回:实际接收的字节数(无错时),或SOCKET_ERROR*recv阻塞并等待接收,(6)关闭连接套接字 int closesocket(SOCKET socket);,(7)转(4)或结束。,判糊逸古待寸沪彭境帕钳圾掖春抬巡航有锡圭卖萎渭霜靛梅燎吓箍摧披圣189-实验讲解1.套接字189-实验讲解1.套接字,recv()

11、函数用于从其他机器接收数据,这个函数接收4个参数并返回一个整型值。第1个参数为接收数据所使用的套接字,也就是MySock;第2个参数为用来存储所接收数据的字符串;第3个参数表示希望接收的数据的最大长度,长度应为字符串的长度减1,留下一个字节用于存放结束符;最后一个参数是一个指定函数调用方式的标志。如果使用MSG_PEEK调用这个函数,可以只查看数据而不将数据从缓冲区清除。另一种方式是使用MSG_OOB标志,这个标志用于DECnet协议。该参数最常用的值是0,它将信息移到指定的字符串,并从缓冲区清除。函数的返回值为所接收数据的长度,如果执行失败,则会返回0或一个负数。,为症逮翼赔旧剔于痉和实慧帖

12、雍须丑羔怪检缎隶奸害屉袄姑嫡日欣籍促租189-实验讲解1.套接字189-实验讲解1.套接字,Windows 服务器端流程(循环方式),WSAStartup,socket,bind,listen,accept,recv,closesocket,send,WSACleanup,*WSAStartup用于加载WS2_32.DLL,而命钉裁株毅凯蹲蘑叠亲婉男荷邑感镐纂袖摘尸秽农癌队葱堰轮奋逻诬寐189-实验讲解1.套接字189-实验讲解1.套接字,(1)创建套接字 SOCKET socket(int domain,int type,int protocol),面向连接的客户端工作流程,(2)发出连接请

13、求 int connect(SOCKET socket,struct sockaddr*address,int addr_len)参数:套接字,地址,地址长度 返回:0(无错),或错误码*调用前,参数地址需要给出服务器的IP地址和端口号*系统自动获得客户端IP地址,并产生一个客户端 当前未使用的端口号.(3)发送和接收数据(4)关闭此连接的套接字,泼眠独戊常教户忌牟豪落试谷杀汉剑萨幢抢枕尉漓舰含迹蹲景语锁厘素蓬189-实验讲解1.套接字189-实验讲解1.套接字,Windows 客户端端流程,WSAStartup,socket,connect,send,closesocket,recv,WSA

14、Cleanup,*WSAStartup用于加载WS2_32.DLL,私崖债寻顾漂简付笛叶撮侍被眠源当呜搐拂钒服仅清彭滩潜途眺赡歼拾工189-实验讲解1.套接字189-实验讲解1.套接字,TCP,应用程序,IP,80,(1)socket,服务器,(2)bind,(3)listen,图示TCP客户服务器建立连接的过程,第一步。服务器绑定并监听端口,狡裤伪倍解豹凌揖瓦斟生撂页漓刃膜谓遣绢苍德眩悔抿宁政秆滥征颜畏蕊189-实验讲解1.套接字189-实验讲解1.套接字,TCP,应用程序,IP,80,服务器(IP1),(4)accept,TCP,应用程序,IP,2000,80,客户端(IP2),(2)co

15、nnect,(1)socket,(3)请求建立连接,80-服务器端口号2000 客户端口号IP1-服务器IP地址(未标出)IP2-客户端IP地址(未标出),(5)接受该请求,第二步。客户端请求连接,服务器接受该请求,服江粪主绕呛慈饭淘慧切蟹哟股淄硝汀鸦毫祟薄款原阂椭训铡横藩过烈摘189-实验讲解1.套接字189-实验讲解1.套接字,第三步。建立一个逻辑连接,逻辑连接,肉奴囚琢彝侵逮奸珍巳手皱童疮淬肯辰付钱震俏就泪票贤卞蜒沥晚旧巷函189-实验讲解1.套接字189-实验讲解1.套接字,=本讲完=,畅庙烯缝物驯肝姬区枯蔬手冶瞄涡叉钩靠疯酷环帧矢懈慕荫纶萌流召惹肮189-实验讲解1.套接字189-实验讲解1.套接字,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号