Jag försöker ansluta till en irc server med denna kod, csc varnar inte och programmet körs ett tag men sedan säger debuggern, Det skulle ju hjälpa om du sa var exakt i koden fsom undantaget kastas. Det står ju bara, Om du provar att låta bli att starta pingtråden, fungerar det då? Kan du få någon bekräftelse på att du verkligen blir inloggad/ansluten? Nej då får jag en bekräftelse på att jag inte fick ansluta för att måldatorn nekade det, men varför? servern finns och funkar utmärkt men det kanske har nåt med att den skickar informationen för sent eller nåt? så att jag inte har tillåtelse att ansluta Jag har aldrig loggat in på en IRC server... men kolla följande: Jag har testat det mesta, men inte "NICK: nick", ska testa sen när jag är hemma, men kanalerna ska inte vara nummer utan det ska va som det är nu, grejen är att jag fått koden från ett exempel och han fick det tydligen att funka felfritt. Jag återkommer.Ansluta till irc server?
Unhandled Exception: System.IO.IOException: Unable to write data to the transport connection. ---> System.Net.Sockets.SocketException:
nu undrar jag om det är någon som har lyckats ansluta till en server på något annat vis? eller om någon kanske kan lista ut vad felet är på min kod.
class PingSender
{
static string PING = "PING";
private Thread pingSender;
public PingSender() { pingSender = new Thread ( new ThreadStart (this.Run) ); }
public void Start() { pingSender.Start(); }
public void Run() {
while (true) {
IrcBot.writer.WriteLine(PING + IrcBot.SERVER);
IrcBot.writer.Flush();
Thread.Sleep(15000); }
}
}
class IrcBot
{
public static string SERVER = "server";
private static int PORT = 7000;
private static string USER = "USER botten";
private static string NICK = "nick";
private static string CHANNEL = "channel";
public static StreamWriter writer;
public static void Main()
{
NetworkStream stream;
TcpClient irc;
StreamReader reader;
irc = new TcpClient();
irc.Connect(SERVER, PORT);
stream = irc.GetStream();
reader = new StreamReader(stream);
writer = new StreamWriter(stream);
PingSender ping = new PingSender();
ping.Start();
writer.WriteLine(USER);
writer.Flush();
writer.WriteLine("NICK " + NICK);
writer.Flush();
writer.WriteLine("JOIN " + CHANNEL);
writer.Flush();
}
} Sv: Ansluta till irc server?
En gissning är att det beror på att du använder samma StreamWriter från två olika trådar. Eftersom den normalt sett inte är trådsäker så är det risk att problem uppstår. Testa att ändra till
public static TextWriter writer;
...
writer = TextWriter.Synchronized(new StreamWriter(stream));
MSSv: Ansluta till irc server?
Unhandled Exception: System.Net.Sockets.SocketException: Ingen sådan värd är kän
d
at System.Net.Dns.GetHostByName(String hostName)
at System.Net.Dns.Resolve(String hostName)
at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at IrcBot.Main()
Fast värden finns.
Jag gjorde som du sa men nu varnar compilern på...
(43,16): error CS0118:
'System.IO.TextWriter.Synchronized(System.IO.TextWriter)' denotes a
'method' where a 'class' was expectedSv: Ansluta till irc server?
IRC servern kanske kastar ut dig (kopplar bort din TCP) eftersom inloggningen misslyckas?Sv: Ansluta till irc server?
writer.WriteLine(USER);
writer.Flush();
writer.WriteLine("NICK " + NICK);
writer.Flush();
writer.WriteLine("JOIN " + CHANNEL);
writer.Flush();
Unhandled Exception: System.Net.Sockets.SocketException: Det gick inte att göra
en anslutning eftersom måldatorn aktivt nekade det
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)
at System.Net.Sockets.TcpClient.Connect(IPAddress address, Int32 port)
at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at IrcBot.Main()
Sv: Ansluta till irc server?
Kan du logga in med ditt nick om du du använder den på "vanligt" sätt.
Kanske du ska skriva "NICK: nick" i stället för "NICK nick" som du skriver idag?
lika med "JOIN: channel", finns kanalen, osv. Channel kanske ska vara ett nummer, inte "Channel" som det är nu?
Använder du rätt port?
Hoppas något hjälper...Sv: Ansluta till irc server?