• 网络服务器和客户端的编写


    """1、创建TCP服务器"""
    import socket   # 用于网络通信
    import threading  # 创建多线程处理客户端请求
    import time  # 用于添加数据时用于延迟,模拟网路传输
    # 建立TCP连接
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 绑定地址及监听端口
    s.bind(('127.0.0.1',6666))  # 将服务器IP地址和端口号绑定到socket对象上,这里使用'127.0.0.1'是本地主机地址,即IP地址的最后一个部分为'1'
    # 调用listen方法监听端口,参数5表示最大连接数,即“队列”大小
    s.listen(5)
    # 打印等待连接的信息
    print('Wait for connection...')
    # 服务器端应答函数
    def tep(sock,addr):
        print('Accept new connection from %s:%s...'% addr)
        # 向客户端发送应答消息“Success!”(这里应答消息是硬编码的,实际应用中可能需要根据实际情况发送不同的应答)
        sock.send(b'Success!')
        # 进入一个无限循环,处理来自客户端的消息
        while True:
            # 从客户端接收最多1024字节的消息
            data = sock.recv(1024)
            # 接收数据后,延迟1秒 (实际时间取决于操作系统的时间粒度)
            time.sleep(1)
            # 如果没有接收到数据,或者接收到的数据解码后为“exit”,则跳出循环
            if not data or data.decode('utf-8') == 'exit':
                 break
            # 向客户端发送消息“Welcom! {数据内容}!”并编码为utf-8格式(实际应用中可能需要根据实际情况发送不同的消息)
            sock.send(('Welcom! %s!' % data.decode('utf-8')).encode('utf-8'))
            # 关闭与客户端的连接
            sock.close()
        # 打印连接关闭的信息
        print('Connection from %s:%s closed.' % addr)
    # 循环处理客户端连接
    while True:
        # 接受来自客户端的新连接:
        sock,addr = s.accept()
        # 创建新线程来处理TCP连接
        t = threading.Thread(target=tep,args=(sock,addr))
        t.start()
    """ 2、实现客户端"""
    # 导入socket库
    import socket
    # 建立TCP连接
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 与服务器建立连接
    print(s.connect('127.0.0.1',6666))
    # 接受服务器的连接成功提示信息
    print(s.recv(1024).decode('utf-8'))
    # 发送数据并接受服务器返回结果
    for data in [b'Tom',b'Jerry',b'Spike']:
        s.send(data)
        print(s.recv(1024).decode('utf-8'))
    # 发送退出信息断开连接
    s.send(b'exit')
    s.close()

    Wait for connection... 

  • 相关阅读:
    应用层协议——DNS
    想知道ppt怎么转成pdf格式?这些转换妙招可以轻松实现
    PyTorch 学习笔记 1 —— Quick Start
    从 dpdk-20.11 移植 intel E810 百 G 网卡 pmd 驱动到 dpdk-16.04 中
    netstat 及 ifconfig 是如何工作的。
    河南分销小程序开发|商城小程序开发为什么会火?
    ​力扣解法汇总1374-生成每种字符都是奇数个的字符串
    FEDformer
    【C++】string常用函数总结及其模拟实现
    Excel文件的操作
  • 原文地址:https://blog.csdn.net/m0_74261473/article/details/133955377