Я получил список IP-адресов и портов разных клиентов. Эти клиенты слушают, и всегда соединение будет принято. Так что я должен сделать так, чтобы все IP-адреса и порты отправляли клиентам текстовый файл. Я пытался с 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. Соединение и доставка с первым клиентом всегда успешны, но когда я связываюсь со вторым, всегда выбрасывается последнее исключение.