#服务器程序
from socket import * #导入socket库 全部导入可用的名字
IP='127.0.0.1'
PORT=50000 #端口号
#服务器程序
from socket import * #导入socket库 全部导入可用的名字(方法)
IP='127.0.0.1'
PORT=50000 #端口号
BUFLEN=512 #定义一次从socket中的缓冲区最多读入512字节数据
listenSocket = socket(AF_INET,SOCK_STREAM) #指定使用的ipv4协议还有tcp
listenSocket.bind((IP,PORT)) #bind是绑定地址和端口,让服务器去连接
listenSocket.listen(5) #5表示最多接受五个客户端的链接
print(f'服务端启动成功,在{PORT}端口等待客户端的链接')
dataSocket, addr = listenSocket.accept() #创建两个变量dataSocket和addr对应接收返回来的对象
print('接受了一个客户端的链接:',addr) #打出来接受到的客户端的ip地址
while True: #用while循环不断的接受客户端发来的消息
recved=dataSocket.recv(BUFLEN) # recv方法
if not recved: #如果返回空,关闭连接
break
info=recved.decode() #读取的是bytes数据,解码成字符串
print(f'收到对方消息:{info}')
dataSocket.send(f'服务端接收到了消息{info}'.encode()) #发送数据是bytes编码成字节类型,发送确认消息
dataSocket.close()
listenSocket.close()
客户端程序
#客户端程序
from socket import *
IP= '127.0.0.1'
SERVER_PORT=50000 #端口号
BUFLEN=512
dataSocket=socket(AF_INET,SOCK_STREAM) #实例化一个socket对象,指定使用的同样的协议,ipv4和tcp
dataSocket.connect((IP,SERVER_PORT)) #调用connect方法连接服务端
while True:
toSend=input('>>') #用户输入字符串
if toSend=='exit':
break
dataSocket.send(toSend.encode()) #对字符串编码
recved=dataSocket.recv(BUFLEN) #等待接受服务端的确认已连接信息
if not recved:
break
print(recved.decode())
dataSocket.close()
分别运行两个代码,打开两个终端窗口。即可完成通信