zoukankan      html  css  js  c++  java
  • Python网络编程Socket之协程

    一、服务端

     1 __author__ = "Jent Zhang"
     2 
     3 import socket
     4 import gevent
     5 from gevent import monkey
     6 
     7 monkey.patch_all()          # 把当前程序中的所有IO操作单独做上标记
     8 
     9 
    10 def server(port):
    11     s = socket.socket()
    12     s.bind(("0.0.0.0", port))
    13     s.listen(5000)
    14     while True:
    15         conn, addr = s.accept()
    16         gevent.spawn(handle_request, conn)
    17 
    18 
    19 def handle_request(conn):
    20     try:
    21         while True:
    22             data = conn.recv(1024)
    23             print(data.decode("utf8"))
    24             conn.send(data.upper())
    25             if not data:
    26                 conn.shutdowm(socket.SHUT_WR)
    27 
    28     except Exception as ex:
    29         print(ex)
    30     finally:
    31         conn.close()
    32 
    33 
    34 if __name__ == "__main__":
    35     server(8001)

    二、客户端

     1 __author__ = "Jent Zhang"
     2 
     3 import socket
     4 
     5 HOST = "localhost"
     6 PORT = 8001
     7 
     8 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     9 s.connect((HOST, PORT))
    10 
    11 while True:
    12     msg = bytes(input(">>:"), encoding="utf8")
    13     if not msg: continue
    14     s.sendall(msg)
    15     data = s.recv(1024)
    16 
    17     print("Received", repr(data.decode("utf8")))
    18 
    19 s.close()
  • 相关阅读:
    ugui优化
    jmeter请求时json串的输入格式
    Python文件读写之r+/w+/a+
    python文件操作
    python列表操作
    python嵌套字典的用法
    python字典的基础操作
    python字符串操作
    python基础之字符串为空或空格判断
    【转】Charles手机抓包设置&无法打开火狐网页设置
  • 原文地址:https://www.cnblogs.com/JentZhang/p/9378492.html
Copyright © 2011-2022 走看看