用python搭建tcp服务器和客户端

TCP服务器:

from socket import *
from icecream import ic
tcpSock = socket(AF_INET, SOCK_STREAM)  # 创建套接字对象,用于接收连接请求。STREAM代表TCP
tcpSock.bind(('', 8765))  # 设置绑定本机的8765端口
tcpSock.listen(5)  # 设置最大连接数为5,最多5个人排队
ic(tcpSock.accept())  # 若有客户端连接,会返回两个值,一是新的套接字对象(用于客服端的数据收发),二是客户端的IP地址和端口号
newSock, clientAddr = tcpSock.accept()  # 上一行为第一次监听,此行为第二次监听
print(newSock, clientAddr)
data = newSock.recv(1024)  # tcp接收数据用recv(),udp用recvfrom()
ic(data)
print(data.decode('gbk'))
newSock.send('穷且益坚,不坠青云之志'.encode('gbk'))  # tcp发送数据用send(),不需要填写接收方的地址和端口;udp用sendto(),需要填写地址和端口
newSock.close()  # 完成数据发送则关闭
tcpSock.close()  # 关闭用于监听的套接字,不能再接收客户端的连接


TCP客户端:

from socket import *
from icecream import  ic
clientSocket = socket(AF_INET, SOCK_STREAM)  # 创建客服端的套接字对象
clientSocket.connect(('192.168.0.108', 8765))  # 用connect()方法输入客户端所要连接的服务器的地址和端口,对服务器发送连接请求
clientSocket.send('老当益壮,宁移白首之心'.encode('gbk'))
data = clientSocket.recv(1024)
ic(data)
print(data.decode('gbk'))
clientSocket.close()  # 关闭客户端

在这里插入图片描述


版权声明:本文为gdd1990shl原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。