Python-socket的简单使用
来源:互联网 发布:凯立德端口修改器 编辑:程序博客网 时间:2024/05/21 11:31
套接字(socket)是计算机网络数据结构,在任何类型的通信开始之前,网络应用程序必须创建套接字,可以将其比作电话的插孔,没有它将无法进行通信
常用的地址家族
- AF_UNIX:基于文件,实现同一主机不同进程之间的通信
- AF_INET:基于网络,适用于IPv4
AF_INET6:基于网络,使用于IPv6
常见的连接类型
- SOCK_STREAM:即TCP/IP。面向连接的套接字,通信之前必须建立可靠的连接。面向连接的套接字提供序列化的、可靠的和不重复的数据交付,而没有记录边界。
- SOCK_DGRAM:即UDP。面向非连接的套接字,通信之前无需建立连接。在数据传输过程中无法保证数据的有序性、可靠性和重复性。然而数据报确实保存了记录边界,意味着数据是以整体发送的,而非事先切割多个片段。
socket通信
- server端
import socketserver = socket.socket() # 默认是AF_INET、SOCK_STREAMserver.bind(("localhost",6868)) # 将主机号与端口绑定到套接字server.listen() # 设置并启动TCP监听器while True: conn,addr = server.accept() # 被动接受TCP连接,一直等待连接到达 while True: data = conn.recv(1024) # 接收TCP消息,并制定最大长度 if not data: print("连接已断开") break conn.send(data.upper()) # 将接收到的数据转为大写在发回给它server.close()
- client端
import socketclient = socket.socket() # 默认是AF_INET、SOCK_STREAMclient.connect(("localhost",6868))while True: s = input(">>") client.send(s.encode("utf-8")) data = client.recv(1024)client.close()
执行结果:
socketserver模块
使用socketserver实现多并发
import socketserverclass MyServer(socketserver.BaseRequestHandler): def handle(self): while True: self.data = self.request.recv(1024) if not self.data: print("%s客户端连接已断开"%self.client_address) break self.request.sendall(self.data.upper())if __name__ == "__main__": server = socketserver.ThreadingTCPServer(("localhost",6969),MyServer) # 开启一个线程 server.serve_forever()
阅读全文
0 0
- Python-socket的简单使用
- python socket简单使用
- Python的Socket模块简单使用
- Python的Socket模块简单使用医
- 树莓派用Python写几个简单程序4:socket的使用
- Socket的简单使用
- python socket 的使用
- 简单的python socket连接
- Python的简单socket通讯
- Python简单的SOCKET编程
- 【Python】一个简单的python socket编程
- Python 一个简单的python socket编程
- python 使用socket搭建简单服务器
- python的socket基本使用
- python中Socket的使用
- python socket 编程的简单example
- 一个简单的python socket编程
- 一个简单的python socket编程
- ERROR : arm-linux-ld:u-boot.lds:1: ignoring invalid character `#' in expression
- 无损联接分解
- oracle函数总结
- ABAP数据库操作之操作语句Insert
- Jquery datetimepicker插件基本使用
- Python-socket的简单使用
- Myeclipse中编写struts.xml文件没有代码提示功能及加了DTD约束后依然无效的解决
- 搭建Spring MVC 4开发环境八步走
- 物联网微生态系统
- hibernate笔记-015-cascade和fetch
- OpenJudge-6044:鸣人和佐助
- mybatis学习之环境配置
- 深入浅出 消息队列 ActiveMQ
- 设计师需要学写作吗