在IRC上回应“无同一回应”

时间:2012-11-14 15:32:18

标签: c#

我正在c#中编写一个IRC客户端,我总是收到“No ident response”消息,它只是断开连接。

代码

TcpClient client = new TcpClient(args[0], port); 
sock.Connect(serverEndPoint);

NetworkStream stream = client.GetStream();
NetworkStream streamw = client.GetStream();

System.IO.StreamReader reader = new System.IO.StreamReader(stream);
System.IO.StreamWriter writer = new System.IO.StreamWriter(streamw);

writer.WriteLine("loaloaloa");
IPEndPoint rep = (IPEndPoint)sock.LocalEndPoint;

        while (true)
        {
            string bytes = reader.ReadLine();
            Console.WriteLine("Received: {0}", bytes);


            if (String.IsNullOrEmpty(bytes))
                break;
        }

这是消息

:kornbluth.freenode.net NOTICE * :*** Looking up your hostname...
:kornbluth.freenode.net NOTICE * :*** Checking Ident
:kornbluth.freenode.net NOTICE * :*** Found your hostname
:kornbluth.freenode.net NOTICE * :*** No Ident response
ERROR :Closing Link: 127.0.0.1 (Connection timed out)

我发现我必须在端口113上收听消息,然后用相同的消息和更多信息回复。

所以我的问题是我如何开始收听端口113,我将如何接受该消息并做出响应?

1 个答案:

答案 0 :(得分:2)

由于@Miserable_Variable已经链接到,你需要在tcp上运行一个ident服务:113

在该端口上,您将收到来自IRCd的连接,它将为您提供类似

的连接

" xxxxx,6667"其中xxxxx是您身边的IRC连接的端口号,显然6667是IRCd侧面的端口号...

如果您使用" xxxxx,6667回复:USERID:UNIX:yyyyy" yyyyy代表您的用户名和xxxxx代表请求的端口号,IRCd应该接受您的连接(除非您发现了禁令......)