我在Python中为socket连接创建了一个服务器和客户机
客户:
import socket
import sys
from sys import stdin
serv = 'ip goes here'
port = 8888
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((serv, port))
def prompt():
sys.stdout.write('<You> ')
sys.stdout.flush()
def send(x):
sock.sendall(x)
rec = 0
ex = len(x)
while rec < ex:
data = sock.recv(16)
rec += len(data)
while 1:
if sock:
data = sock.recv(16)
if len(data) == 0:
pass
print '<Server> %s' % data
prompt()
msg = stdin.readline()
sock.sendall(msg)
按照我现在的方式,如果你在一个客户机上说了什么,它会向两个客户机发送“字母表”,但是其他客户机不会收到,直到他们发送一个新的消息,因为它正在等待标准读线()发生。我想知道如何使它,使客户端将始终从服务器接收数据,并将看到它,而不必有标准读线()先发生。你知道吗
谢谢
通过使用CrazyCasta建议的线程实现了我想要的
相关问题 更多 >
编程相关推荐