(C#) TcpClient 没有连接到 irc 服务器(使用数字 ip)
(C#) TcpClient does not connect to irc server (Using a number ip)
所以,我一直在尝试制作一个连接到本地 irc 服务器的机器人。问题是,如果我调用 "Irc.cs" class 我用构造函数创建的 Irc irc = new Irc("192.168.1.2", 6667); irc.joinChannel("#test")
它不会出现在 irc 服务器频道上。问题是我不认为它连接失败,因为如果我输入 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。
所以,我一直在尝试制作一个连接到本地 irc 服务器的机器人。问题是,如果我调用 "Irc.cs" class 我用构造函数创建的 Irc irc = new Irc("192.168.1.2", 6667); irc.joinChannel("#test")
它不会出现在 irc 服务器频道上。问题是我不认为它连接失败,因为如果我输入 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。