我收到了不同客户端的IP和端口列表。该客户端正在侦听并且始终会接受连接。因此,我必须获取所有IP和端口以将txt文件发送给客户端。我已经尝试过2位客户。首先,文件成功发送,但是与下一个客户端永远不会传输文件。 我已经阅读了一些帖子,我认为可能是由于快速使用具有相同端口和IP的相同套接字(我无法更改端口)
try:
st = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error:
print "Error al crear socket TCP"
sys.exit()
try:
st.connect((str(ipx),int(portx)))
except socket.error:
print "Error al realizar la conexion TCP con el cliente de
puerto " + str(portx)
sys.exit()
tam = os.stat(sys.argv[2]).st_size
nom = sys.argv[2]
mssg = nom + " " + str(tam)
st.send(mssg)
try:
st.settimeout(3)
resplyc = st.recv(1024)
except socket.timeout:
print "Error: No hay respuesta por parte del cliente " + ipx + "
en el puerto " + str(portx)
st.close()
sys.exit()
st.send(fich.read())
try:
st.settimeout(10)
resplyc2= st.recv(1024)
except socket.timeout: # I always get this exception
print "Error en la transferencia con cliente " + ipx
print "con puerto "+portx
st.close()
sys.exit()
st.close()
print 'socket closed'
这在for循环中。与第一个客户的联系和信任总是成功的,但是当我与第二个客户联系时,总是会抛出最后一个异常。