所以,我一直在尝试制作一个连接到本地 irc 服务器的机器人。问题是如果我调用我用构造函数创建的“Irc.cs”类:Irc irc = new Irc("192.168.1.2", 6667); irc.joinChannel("#test")
它没有出现在 irc 服务器 channel 上。问题是我不认为它连接失败,因为如果我输入 Irc irc = new Irc("192.168.1.11", 6667)
(这不是服务器)它会抛出异常,但是作为服务器的那个没有。如果有人能提供帮助,我会很高兴 :) 这是“Irc.cs”的代码
public IrcBot(String ip, int port, String nickName)
{
tcpClient = new TcpClient(ip, port);
inputStream = new StreamReader(tcpClient.GetStream());
outputStream = new StreamWriter(tcpClient.GetStream());
outputStream.WriteLine("NICK " + nickName);
outputStream.WriteLine("USER " + nickName + " 8 * : " + nickName);
outputStream.Flush();
}
public void joinRoom(String channel)
{
this.channel = channel;
outputStream.WriteLine("JOIN " + channel);
outputStream.Flush();
}
最佳答案
这里有一件重要的事情是 IRC 使用 CR/LF 而不是 StreamWriters 使用的 LF,因此您需要像这样创建一个 StreamWriter:
writer = new StreamWriter(stream) { NewLine = "\r\n" };
这样它会在每一行的末尾发送 CR/LF。
关于c# - (C#) TcpClient 没有连接到 irc 服务器(使用数字 ip),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476680/