import socket
host1 = '127.0.0.1'
host2 = 'login.icq.com'
port1 = 8766
k = 1
s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s1.bind((host1, port1))
s2.connect((host2, port1))
s1.listen(5)
conn, addr = s1.accept()
print 'klient connect'
s2.setblocking(0) #очень странная фича, если ставить другие цифры не 1 не 0, а скажем пять что происходит?
conn.setblocking(0)
r1 = r2 = ''
while k < 20: #пробовал и больше цикл сделать, в будущем планирую бесконечный, но пока это лишнее
while 1:
r11 = conn.recv(1) #пробовал принимать и больше единицы, возможно нужно указывать точный размер пакета, тогда вопрос как его определить?
if not r11: break
r1 = r1 + r11 #пробовал сразу отправлять r11
s2.send(r1)
while 1:
r21 = s2.recv(1)
if not r21: break
r2 = r2 + r21
conn.send(r2)
k = k + 1
print k
P.S. Трейсбека в данном случае нет, если увеличить число повторов первого вайла тоже нет трейсбека, если его бесконечным сделать то вис… Эт если я правильно понял эт умное слово треисбек), в других вариантах моего кода всегда разные ошибки…