URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8239
[ Назад ]

Исходное сообщение
"Broken pipe в irc"

Отправлено newbie_coder , 26-Апр-09 13:27 
Всем добрового времени суток.
Только начал изучения питона.. решил попробывать свои силы в написании кода. В голову пришла идея написания небольшого флудера (исключительно в целях практики), пока что есть лишь возможность конекта к irc серверу, вот код:
import socket

HOST = "80.82.41.171"
                          
PORT = 6667

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
mes  = "NICK bot_test\r\n"
mes += "USER a a a :a\r\n"
mes += "JOIN #mafia\r\n\r\n"

sock.send(mes)
sock.close()

проблема в следующем - при конекте данного творения к серверу соеденения обрываеться только успев установиться, ошибка "Broken pipe". Кто сможет помочь с решением или просто даст подсказку - тому спасибо.


Содержание

Сообщения в этом обсуждении
"Broken pipe в irc"
Отправлено ALu , 26-Апр-09 20:41 
>sock.connect((HOST, PORT))
>...
>sock.send(mes)
>sock.close()

Для начала убедитесь что метод connect отрабатывает без ошибок. Скорее всего ему не удаётся установить соединение, а последующий вызов send вызывает broken pipe.



"Broken pipe в irc"
Отправлено newbie_coder , 26-Апр-09 21:54 
нет-нет.. вот именно, что соеденение установлено, но сразу же и обрываеться, только успев установиться

"Broken pipe в irc"
Отправлено ALu , 27-Апр-09 08:53 
>нет-нет.. вот именно, что соеденение установлено, но сразу же и обрываеться, только
>успев установиться

Значит сервер закрывает его. Попробуйте проделать все те же операции вручную, телнетом. Будет видно, в какой момент сервер закрывает соединение.


"Broken pipe в irc"
Отправлено tstr , 21-Июл-09 07:46 
>[оверквотинг удален]
>mes  = "NICK bot_test\r\n"
>mes += "USER a a a :a\r\n"
>mes += "JOIN #mafia\r\n\r\n"
>
>sock.send(mes)
>sock.close()
>
>проблема в следующем - при конекте данного творения к серверу соеденения обрываеться
>только успев установиться, ошибка "Broken pipe". Кто сможет помочь с решением
>или просто даст подсказку - тому спасибо.

А вы отпОнговываетесь от сервера? Прочитайте спецификацию (rfc 1459), вам сервер "говорит" PING, а вы должны ему ответить PONG. Должно помочь :-)