0

C#でIRCクライアントを作成していますが、常に「ID応答がありません」というメッセージが表示され、接続が切断されます。

コード

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でリッスンを開始し、どのようにメッセージを受け入れて応答するのかということです。

4

1 に答える 1

2

@Miserable_Variable はすでにリンクされているため、tcp:113 で実行されている ident サービスが必要です。

そのポートで、IRCd からの接続を受け取り、次のような結果が得られます。

"xxxxx, 6667" ここで、xxxxx はあなたの側の IRC 接続のポート番号であり、明らかに 6667 は IRCd 側のポート番号です ...

"xxxxx, 6667 : USERID : UNIX : yyyyy" (yyyyy はユーザー名、xxxxx は要求されたポート番号) で応答すると、IRCd は接続を受け入れるはずです (禁止されていない限り...)

于 2012-11-14T16:39:35.373 に答える