zoukankan      html  css  js  c++  java
  • python TCP编程

    1.socket
    服务端和客户端通过socket套接字进行通信

    2.服务端

    import socket
    import threading
    
    
    def tcp_handler(connect_sock, addr):
        print('accept connection from %s:%s' % addr)
        # 向客户端发送消息
        connect_sock.send(b'welcome!')
        while True:
            # 阻塞,接收客户端消息
            data = connect_sock.recv(1024)
            if not data or data.decode('utf-8') == 'exit':
                break
            # 向客户端发送消息响应
            connect_sock.send(b'hello %s' % data)
        # 关闭连接socket
        connect_sock.close()
        print('connection from %s:%s closed' % addr)
    
    # 创建socket
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 绑定地址,端口
    server_socket.bind(('127.0.0.1', 9999))
    
    # 监听连接, 参数为等待连接的最大数目
    server_socket.listen(5)
    
    print('waiting for connection')
    
    # 循环接收来自客户单的连接请求
    while True:
        # 接收客户端连接,返回新的连接socket,客户端地址
        connect_sock, addr = server_socket.accept()
        # 创建新线程,处理TCP连接
        t = threading.Thread(target=tcp_handler, args=(connect_sock, addr))
        t.start()
    

    3.客户端

    import socket
    
    # 创建socket
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 建立连接
    client_socket.connect(('127.0.0.1', 9999))
    
    # 阻塞,接收欢迎消息
    print(client_socket.recv(1024))
    
    for data in [b'shijingjing', b'renjiangfeng', b'huiyunyun']:
        # 发送数据
        client_socket.send(data)
        print(client_socket.recv(2014))
    
    client_socket.send(b'exit')
    
    client_socket.close()
    

    4.运行结果
    运行服务端tcp_server.py:

    运行客户端tcp_client.py:

  • 相关阅读:
    Bzoj1499: [NOI2005]瑰丽华尔兹
    Bzoj1016: [JSOI2008]最小生成树计数
    清橙A1212:剪枝
    SPOJ1825:Free tour II
    http://www.freepik.com/
    A Guide To Transclusion in AngularJS
    styling-customizing-file-inputs
    You Don't Know JS: this & Object Prototypes
    git中https和SSH的区别
    difference between match and exec
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/7911145.html
Copyright © 2011-2022 走看看