- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
课堂导入渗透测试工作编写渗透测试工具软件编写渗透测试工具软件
Socket网络编程Socketnetworkprogramming
Socket的概念
Socket的概念定义计算机之间基于TCP/IP协议进行网络通信的一套程序接口(套接字),最初由加利福尼亚大学伯克利分校研发,目前已经成为网络编程的标准,可以实现跨平台的数据传输。
表示层应用层传输层会话层数据链路层网络层物理层10100001111000110011000(比特流)AH数据数据PH数据SH数据TH数据NH数据DHDH表示层应用层传输层会话层数据链路层网络层物理层数据发送进程接收进程Socket的概念
Socket的概念通信协议SocketSocket复杂调用协议栈中的协议进行通信方便统一的接口(Socket接口)去调用
Socket的概念Socket套接字:应用层与TCP/IP协议簇通信的中间软件抽象层是一组接口把复杂的TCP/IP协议簇隐藏在Socket接口后面
Socket的概念Socket接口网络通信组织数据调用符合指定的协议
基于TCP的Socket通信模型基于UDP的Socket通信模型
bind()listen()accept()recv()send()close()Socket()connect()send()recv()close()创建Socket接口监听客户端的连接绑定IP和端口接受客户端的连接接收客户端的数据向客户端发送数据关闭Socket接口向服务端请求连接向服务端发送数据接收服务端的数据关闭Socket接口Socket()创建Socket接口服务端客户端基于TCP的Socket通信模型
Python中如何调用Socket套接字
socket
基于TCP的Socket网络编程socket.SOCK_STREAM:使用TCP协议创建Socket对象服务端用到的Socket模块方法socket.AF_INET:使用IPv4协议(socket.AF_INET6:使用IPv6协议)server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server:返回一个Socket对象
基于TCP的Socket网络编程bind_port:绑定的端口号绑定IP地址和端口号服务端用到的Socket模块方法bind_ip:绑定的IP地址server.bind((bind_ip,bind_port))这两个参数以一个元组的形式出现server.listen(client_num)绑定IP地址和端口号client_num:能够接收的客户端连接数
基于TCP的Socket网络编程conn:一个新的socket对象,用来接收和发送数据接受客户端的连接请求服务端用到的Socket模块方法conn,addr=server.accept()addr:客户端的IP地址和端口号
基于TCP的Socket网络编程接收到的数据data是bytes类型,需要使用data.decode()转换成字符串才能正常读取接收数据服务端用到的Socket模块方法bufsize:一次能够接收的数据块大小data=conn.recv(bufsize)
基于TCP的Socket网络编程发送数据服务端用到的Socket模块方法返回值是发送字节的数量,可能未全部发送指定的内容conn.send(data)conn.sendall(data)尝试发送所有数据,成功返回None,失败抛出异常注意:发送数据data需要是bytes类型,因此如果原始数据是string类型,需要使用data.encode()转换成bytes类型才能正确发送要发送的信息
关闭连接服务端用到的Socket模块方法关闭此发送接收数据的接口conn.close()server.close()关闭此次连接接口基于TCP的Socket网络编程
基于TCP的Socket网络编程target_port:服务端口号客户端用到的Socket模块中的socket、send、recv方法与服务端相同。不同的是连接服务端connect方法target_ip:服务器的IP地址client.connect((target_ip,target_port))这两个参数以一个元组的形式给出Socket模块SocketSendrecv
Socket()bind()listen()accept()recv()send()close()Socket()connect()send()recv()close()创建Socket接口监听客户端的连接绑定IP和端口接受客户端的连接显示客户端的地址信息显示客户端发送的信息关闭Socket接口提示用户输入信息向服务端发送信息接收服务端的信息关闭S
文档评论(0)