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

猜你喜欢

转载自www.cnblogs.com/jum-bolg/p/10928659.html