zoukankan      html  css  js  c++  java
  • 使用Python的socket模块搭建tcp服务器与客户端

    # __author__ = 'ZSnail'
    
    # socket就是一个网络通讯协议
    # 服务器端
    
    import socket
    
    server = socket.socket()
    
    server.bind(('127.0.1.1', 6969))  # 绑定要监听的端口
    
    server.listen()  # 监听
    
    print('开始等??')  # 在这里会形成阻塞,一直等到有客户连接
    
    # conn就是客户端连过来而在服务器内生成的一个连接实例
    
    conn, address = server.accept()  # 等电话打进来
    while True:
        print('电话来了')
        data = conn.recv(1024)  # 官方要求最好不要高于8192 - 8k
    
        print('receive:', data)
    
        conn.send(data.upper())
    
    server.close()

    以上是服务端代码.

    有可能不太好理解conn, address的意思, 可以理解为移动客服人员, 整个是一个服务体系, 但是当移动客户打进电话时, 需要真正的有人来回复打电话的客户

     1 # __author__ = 'ZSnail'
     2 # 客户端
     3 import socket
     4 
     5 client = socket.socket()  # 声明socket类型和socket链接
     6 
     7 client.connect(('127.0.1.1', 6969))   # 连接端口
     8 
     9 while True:    # 在这里写死循环 可以让客户端一直保持连接状态而不断开
    10     msg = input('>>:').strip()
    11 
    12     client.send(msg.encode('utf-8'))  # python3内只能发送比特类型
    13 
    14     data = client.recv(1024)   # 收多少东西 单位是字节
    15 
    16     print('receive:', data)
    17 
    18 client.close()

    以上是客户端代码, 可以尝试插入几条print语句来查看阻塞问题

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/jedenzhan/p/8728386.html
Copyright © 2011-2022 走看看