Python 官方文档:入门教程 => 点击学习
这篇文章主要讲解了“python基于Socket怎么实现tcp客户端和服务端”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基于socket怎么实现TCP客户端和服务端”吧!一、基
这篇文章主要讲解了“python基于Socket怎么实现tcp客户端和服务端”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基于socket怎么实现TCP客户端和服务端”吧!
import socket # 建立socket对象# 参数一表示IP地址类型(AF_INET为IPV4,AF_INET6为IPV6),参数二表示连接的类型(SOCK_STREAM表示TCP形式,SOCK_DGRAM表示UDP形式)client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 代表(ipv4,TCP) # 连接服务器(元组中填目标ip地址和端口号)client_socket.connect(('127.0.0.1',7777))# 准备数据,需要转换为二进制数据,encode()中填写的是本地的字符串编码格式,Mac、linux填utf-8data='hello'.encode('gbk')# 向服务器发送数据client_socket.send(data)# 接收数据,必须要指定接收数据的大小,单位字节,最大4096,即4krecv_data=client_socket.recv(1024)# 接收的数据要进行decode()解码,发送的时候用啥编码就填啥编码recv_data=recv_data.decode('gbk')print(recv_data)# 关闭连接client_socket.close()
import socket# 建立socket对象server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 如果服务器是一次性的,如果服务器结束后马上重新启动会出现一个错误,原因是地址和端口没有被释放# OSError: [Errno 48] Address already in use# 如果想马上释放,要设置一下socket选项server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)# 绑定IP和端口,如果在绑定IP时没有给定IP,默认是绑定本地IPserver_socket.bind(('',7777))# 设置监听(最大监听数),设置完后服务端会进入被动模式,不能主动连接客户端,只能被动地等待客户端的连接server_socket.listen(128)# 等待客户端连接,连接上后,函数会返回客户端的Socket对象和地址信息client_socket,ip_port=server_socket.accept()print(f'客户端{ip_port[0]}使用端口{ip_port[1]}连接成功...')# 接收客户端数据data=client_socket.recv(1024)# 查看客户端发送的数据长度if len(data)!=0: data=data.decode('gbk') print(f'客户端{ip_port[0]}使用端口{ip_port[1]}发送是数据是{data}')else: print(f'客户端{ip_port[0]}使用端口{ip_port[1]}关闭了连接') # 给客户端发送数据data='你好'.encode('gbk')client_socket.send(data)# 关闭客户端client_socket.close()# 关闭服务端server_socket.close()
感谢各位的阅读,以上就是“Python基于socket怎么实现TCP客户端和服务端”的内容了,经过本文的学习后,相信大家对Python基于socket怎么实现TCP客户端和服务端这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
--结束END--
本文标题: Python基于socket怎么实现TCP客户端和服务端
本文链接: https://www.lsjlt.com/news/326840.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0