• 单线程下TCP循环等待、接收客户端消息


    效果:

     1 import socket
     2 
     3 
     4 def main():
     5     while True:
     6         # 创建监听套接字
     7         tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     8 
     9         # 绑定IP和Port
    10         tcp_server_socket.bind(('', 7788))
    11 
    12         # 设置为被动监听
    13         tcp_server_socket.listen(128)
    14 
    15         # 等待客户端连接
    16         print("等待客户端连接中......")
    17         client_socket, client_adress = tcp_server_socket.accept()
    18         print("已连接客户端:%s" % str(client_adress))
    19 
    20         # 再加一个循环,当客户端发出特殊指令时,再结束该客户端的连接
    21         while True:
    22             # 接收数据
    23             recv_data = client_socket.recv(1024)
    24             print(recv_data.decode('gbk'))
    25             # 当客户端发送的数据有内容时,回送消息给客户端
    26             if recv_data:
    27                 client_socket.send('已接收并处理'.encode('gbk'))
    28             # 当客户端关闭连接时(回送消息无数据),退出循环并关闭客户端套接字
    29             else:
    30                 print("%s 客户端终止了连接" % str(client_adress))
    31                 break
    32 
    33         # 关闭套接字
    34         client_socket.close()
    35     tcp_server_socket.close()
    36 
    37 
    38 if __name__ == '__main__':
    39     main()
  • 相关阅读:
    cocos2dx——九宫格CCScale9Sprite
    COCOS学习笔记--TexturePacker使用详解
    leetcode 旋转数组
    leetcode 从排序数组中删除重复项
    使用javascript随机生成斗地主玩家手牌
    模仿w3c school的示例导航栏
    c#中快速排序的学习
    常用语法梳理
    技巧类
    markdown备忘
  • 原文地址:https://www.cnblogs.com/zzmx0/p/12652468.html
Copyright © 2020-2023  润新知