zoukankan      html  css  js  c++  java
  • 基于tcp协议通信的套接字(通信循环)

    让客户端和服务端可以互相通信

    from socket import *
    
    client = socket(AF_INET, SOCK_STREAM)
    client.connect(('127.0.0.1', 8080))
    
    # 通信循环
    while True:
        msg=input('>>: ').strip()
        client.send(msg.encode('utf-8'))
        data=client.recv(1024)
        print(data)
    
    client.close()
    客户端
    # 服务端必须满足至少三点:
    # 1. 绑定一个固定的ip和port
    # 2. 一直对外提供服务,稳定运行
    # 3. 能够支持并发
    from socket import *
    
    server = socket(AF_INET, SOCK_STREAM)
    server.bind(('127.0.0.1', 8080))
    server.listen(5)  #限制请求数
    
    conn, client_addr = server.accept()
    
    # 通信循环
    while True:
        data = conn.recv(1024) #接受数据最大限制
        conn.send(data.upper())
    
    conn.close()
    server.close()
    服务端

    上面有个问题,就是客户端关闭后,服务端也跟着关闭

    修改版

    from socket import *
    
    client = socket(AF_INET, SOCK_STREAM)
    client.connect(('127.0.0.1', 8080))
    
    # 通信循环
    while True:
        msg=input('>>: ').strip()
        client.send(msg.encode('utf-8'))
        data=client.recv(1024)
        print(data)
    
    client.close()
    客户端
    # 服务端必须满足至少三点:
    # 1. 绑定一个固定的ip和port
    # 2. 一直对外提供服务,稳定运行
    # 3. 能够支持并发
    from socket import *
    
    server = socket(AF_INET, SOCK_STREAM)
    server.bind(('127.0.0.1', 8080))
    server.listen(5)
    
    conn, client_addr = server.accept()
    print(client_addr)
    
    # 通信循环
    while True:
        try:
            data = conn.recv(1024)
            if len(data) == 0:break # 针对linux系统
            print('-->收到客户端的消息: ',data)
            conn.send(data.upper())
        except ConnectionResetError:
            break
    
    conn.close()
    server.close()
    服务端
  • 相关阅读:
    [计算机网络] 互联网协议栈(TCP/IP参考模型)各层的主要功能及相应协议
    [计算机网络-应用层] P2P应用
    [剑指Offer] 45.扑克牌顺子
    [剑指Offer] 44.翻转单词顺序列
    [STL] 如何将一个vector赋给另一个vector
    最近更新少,是因为在用框架做项目
    转收藏:Git常用命令速查表
    CentOS常用指令
    CentOS修改服务器系统时间
    Javascript定时跳转
  • 原文地址:https://www.cnblogs.com/zhouhao123/p/11267580.html
Copyright © 2011-2022 走看看