基于python的客户端,服务端之间的通信

#服务器程序
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()

分别运行两个代码,打开两个终端窗口。即可完成通信

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值