擅长:python、mysql、java
<p>你的问题不太连贯。然而,您的程序根本不需要异步来实现您的要求。</p>
<p>这是一个工作的聊天脚本,你最初想要的变化很小。它使用1个线程接收和1个线程发送,都使用阻塞套接字。它比使用异步方法简单得多。</p>
<pre><code>from socket import *
from threading import Thread
import sys
HOST = 'localhost'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
def recv():
while True:
data = tcpCliSock.recv(BUFSIZE)
if not data: sys.exit(0)
print data
Thread(target=recv).start()
while True:
data = raw_input('> ')
if not data: break
tcpCliSock.send(data)
tcpCliSock.close()
</code></pre>