Форум сайта python.su
LamНе вижу в нем стека вызова и на какие строчки он ссылается.
трейс и так полный
Офлайн
в общем - у меня на локальной машине - такой вариант работает полностью:
import select
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 s1
print conn
#64.12.161.153 5190
print 'klient connect'
list = [s2, conn]
while True:
s3, s4, s5 = select.select(list, [], [])
for i in s3:
if i == conn:
data = conn.recv(1024)
s2.send(data)
print '1 ', len(data)
elif i == s2:
data = s2.recv(1024)
conn.send(data)
print '2 ', len(data)
Отредактировано (Дек. 24, 2008 17:21:02)
Офлайн
http://rastaman.tales.ru/?page=3&menu1=7&smenu1=1&menu2=21&inctext=0 демоны мать их ну ниче ща их того и снова прогу писать кста с наступающим вас всех, вы ведь тут не только програмите)
Офлайн
Да забаньте вы наконец этого придурка.
Офлайн
Lam, тебе уже несколько раз намекнули на то, что здесь люди более менее грамотные и, соответственно, не любят коверконье языка. Пойми, твой слог действительно тяжело читается… И, спрашивается, почему мы должны тратить своё мозговое время на то, чтобы разбирать то что ты написал?
Так что либо оставь такой слог для удаффа с башоргом, либо, прости за грубость, катись от сюда к чёртовой бабушке!
P.S. Ferroman, ещё +1. Я как раз думал, что бы такого написать… :-)
P.P.S. Сходил я по этой ссылке… Lam, не в тему здесь это, ибо здесь работают. Юмор мы все любим, но в тему и в специально отведённых для этого местах, потому что отвлекает.
Отредактировано (Дек. 25, 2008 01:36:07)
Офлайн
shiza спасибо, но у меня почему то и этот вариант не хочет работать, печатает цифру 1, и чего то ждет…
ZZZ, ferroman расслабтесь, отвлекаю от работы, правильно решение даже такой нелепой задачи как написание такой программы какая нужна мне, требует хоть какого то внимания а значит отвлечение от работы, а раз вы всё равно отвлеклись дак не всё ли равно куда вы отвлеклись, а что не понятно, ну некоторые всё же понимают, а если чего то совсем не понятно заходим в гугль ищем а потом спрашиваем если не нашли, мне же тоже много чего непонятно но я почему то должен прочитать pep8, “это” и делать как сказано там, а именно постораться самостоятельно найти ответ не нашел спрашивать, короче задача на сколько я знаю довольно простая, то что вы её можете решить это для меня уже сомнение, зато вы очень трепетно к правилам относитесь, такое впечатление что них не знаете просто собрались и правила дружно не нарушаем… Хотя да эт наверно просто я чего опять через голова делаю, лан спасибо досвидание, большое спасибо, очень помогли…
Офлайн
%)
Офлайн
Мож тему перенести в раздел мобильный питон?
Отредактировано (Дек. 25, 2008 21:54:23)
Офлайн
Shiza, я пробежался по твоему коду… А с какого перепоя ты решил, что размер пакета всегда кратен 1024-ём байтам (.recv(1024))? Ведь если это не так, то он будет до позеленения ждать, пока не наберётся необходимое число данных.
Лам, не хорошо огрызаться, когда приходишь в новое общество и тебе указывают на то, как в нём принято себя вести.
LamВозможно. Но в данном случае проблема укладывается в общие рамки с поправками вроде отсутствия socket.socket.settimout.
Мож тему перенести в раздел мобильный питон?
Офлайн
Да согласен не хорошо я прост человек такой не хороший) да я такой и че идем на уступки я читаю стараюсь выполнять ваши правила, да не се сразу москва не рим не сразу появилась)… Насчет кода, ну лан у него не кратен 1024 я вобще сделал код следущим:
import socket, select
host1 = '127.0.0.1'
host2 = 'login.icq.com'
port1 = 8766
k, b = 1, 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'
def move(i, o):
try:
tmp = ''
while True:
tmp +=i.recv(b)
except socket.error:
o.send(tmp)
while k<20:
list1 = [conn, s2]
s3, s4, s5 = select.select(list1, [], [])
print 'select'
for i1 in s3:
print 'start'
if i1 == conn:
move(conn, s2)
print k
elif i1 == s2:
move(s2, conn)
print k, k
k +=1
Отредактировано (Дек. 25, 2008 23:22:41)
Офлайн