TCP服务器 为多个客户端服务

初学TCP

1,新建服务器的监督套接字下 ,需要再建立一个新的为客户端收发信息服务的套接字。

2, recv_data.decode(“utf-8”) 解码 客户端发送的 bit字节, 同样 服务发送的消息也需要编码回送客户端

3, 解堵塞 用判断 语句 判断客户端 是否还在连接客户端——即客户端断开连接,发送的消息为None

  1 from socket import *
  2 
  3 def main():
  4 
  5     # 1, 创建套接字
  6     tcp_server_socket = socket(AF_INET, SOCK_STREAM)
  7 
  8     # 2, 绑定ip,port
  9     tcp_server_socket.bind(("", 8080))
 10 
 11     # 3, listen 监听模式
 12     tcp_server_socket.listen(128)
 13 
 14     while True:
 15 
 16         # 4,  等待连接
 17         print("等待连接客户端……")
 18 
 19         # 创建新的为客户端服务的套接字
 20         new_client_socket, client_addr = tcp_server_socket.accept()
 21         print("连接上了客户端:%s" % str(client_addr))
 22 
 23         # 持续为同一个客户端服务
 24         while True:
 25 
 26             # 接收客户端发送过来的请求
 27             recv_data = new_client_socket.recv(1024)
 28             print("接收了客户端信息:%s" % recv_data.decode("utf-8"))
 29 
 30             # 使用recv解堵塞
 31             if recv_data:
 32 
 33                 # 回送一部分数据给客户端
 34                 new_client_socket.send("hello".encode("utf-8"))
 35 
 36             else:
 37                 break
 38 
 39         # 关闭套接字
 40         new_client_socket.close()
 41         print("已经回送了信息……")
 42         print("*" * 50)
 43 
 44     tcp_server_socket.close()
 45 
 46 if __name__ == "__main__":
 47     main()
~                                                                               
~                 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值