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

    一.客户端

    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 建立连接:
    s.connect(('127.0.0.1', 5500))
    # 接收欢迎消息:
    print(s.recv(1024).decode('utf-8'))
    for data in [b'Michael', b'Tracy', b'Sarah']:
        # 发送数据:
        s.send(data)
        print(s.recv(1024).decode('utf-8'))
    s.send(b'exit')
    # 关闭连接
    s.close()
    

      

    二.服务端

    import socket
    import threading
    
    # 处理tcp 连接
    def tcp_link(sock, addr):
        print(addr)
        # 打印连接信息
        print('link create, from %s:%s' % addr)
        # 连接建立后发送欢迎信息
        sock.send(b'Welcome!')
        while True:
            data = sock.recv(1024)
            # 如果信息为空或信息为exit,则退出连接
            if not data or data.decode('utf-8') == 'exit':
                break
            sock.send(('hello, %s' % data.decode('utf-8')).encode('utf-8'))
        sock.close()
        print('link close, from %s:%s' % addr)
    
    
    # 以ipv4, 流媒体创建socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 监听端口:
    s.bind(('127.0.0.1', 5500))
    # 限制最大连接数为5个
    s.listen(5)
    
    while True:
        # 接受新连接
        sock, addr = s.accept()
        # 创建新线程来处理TCP连接,否者会堵塞其他用户的请求
        t = threading.Thread(target=tcp_link, args=(sock, addr))
        t.start()
    

      

  • 相关阅读:
    Oracle数据类型
    Windows10安装node.js,vue.js以及创建第一个vue.js项目
    Redis Desktop Manager安装
    VMware安装Linux系统
    前端入门学习路线
    架构
    HTML
    Oracle修改表类型方法
    Python学习
    Python(字符串和编码)
  • 原文地址:https://www.cnblogs.com/itfenqing/p/10275178.html
Copyright © 2011-2022 走看看