zoukankan      html  css  js  c++  java
  • socket 异步I/O

    # 客服端
    # -*- coding: utf-8 -*-
    import socket
    import threading
    
    
    # from collections import deque
    # q = deque(maxlen=3)
    
    # server = socket.socket()
    # print(server)
    # server.bind(("localhost", 2564))  # 绑定端口
    # server.listen(2)  # 监听
    # conn, address = server.accept()
    # print(conn)
    # conn.sendall(bytes("来自客服端的消息...", encoding="utf-8"))
    # while True:
    #     # server.setblocking(False)  # 非阻塞
    #     # conn, address = server.accept()       # 接收连接许可,接受连接并返回(conn,address)
    #     print(conn, address)
    #     f_client = conn.recv(1024)  # 来自客户端发来的消息
    #     if f_client:
    #         print(str(f_client, encoding='utf-8'))
    #     # s = input("发送至客户端:")
    #     # if s:
    #     conn.sendall(bytes('你好', encoding="utf-8"))
    #     # if server.recv(100):
    
    def Server(host, port):
        server = socket.socket()
        server.bind((host, port))
        server.listen(4)
        conn, address = server.accept()
        m = "来自客户端:"
        conn.sendall(bytes(m,encoding="utf-8"))
        while True:
            client_mess = conn.recv(1024)  # 接收客户端消息,最大字节数1024
            print(str(client_mess, encoding='utf-8'))
            conn.sendall(bytes('你好', encoding='utf-8'))
    
    
    if __name__ == "__main__":
        t1 = threading.Thread(target=Server, args=("localhost", 2564,))
        t1.start()
    # 客户端
    # -*- coding: utf-8 -*-
    import socket
    
    client = socket.socket()
    print(client)
    client.connect(("localhost", 2564))  # 连接客服端(server)
    # client.listen(5)
    # conn, address = client.accept()
    print(str(client.recv(1024),encoding='utf-8'))
    while True:
        c = input("发送消息至客服端:")
        if c:
            client.sendall(bytes(c, encoding="utf-8"))
        ret = client.recv(1024)  # 打印来自客服端的消息
        if ret:
            print(str(ret, encoding='utf-8'))

    参照:https://www.cnblogs.com/aylin/p/5572104.html#3651306

  • 相关阅读:
    python 字符串中的%s与format
    python中的virtualenv是干嘛的?
    grep 与 find 简单命令
    git merge 和 git rebase的区别
    git stash的用法
    git push的用法
    git pull与git fetch的区别
    辟谣平台 踩坑记(一)
    微信JS-SDK开发 入门指南
    linux 写U盘出现的问题
  • 原文地址:https://www.cnblogs.com/jum-bolg/p/10928659.html
Copyright © 2011-2022 走看看