netcat有一个特点就是收发是不阻塞的。
使用nc -l 12345和nc localhost 12345
进行测试,可以看到实时的收发信息:
import socket
from threading import Thread
sock = socket.socket()
sock.bind(('127.0.0.1', 10235))
sock.listen(1)
conn, addr = sock.accept()
print('connected:', addr)
def recv():
while True:
data = conn.recv(1024).decode()
if not data: break
print("Received:"+data)
def send():
while True:
conn.send(input().encode())
Thread(target=recv).start()
Thread(target=send).start()
客户端
import socket
from threading import Thread
sock = socket.socket()
sock.connect(('127.0.0.1', 10235))
def recv():
while True:
data = sock.recv(1024).decode()
if not data: break
print("Received:"+data)
def send():
while True:
sock.send(input().encode())
Thread(target=recv).start()
Thread(target=send).start()
现在python也能实时收发了