webForumDet fria alternativet

Tcp - Irc

.NET

7 svar · 328 visningar · startad av P

Medlem sedan jan. 20012 204 inlägg
Frågan#1

Någon som har jobbat med detta? Har ett problem när jag försöker ansluta mig mot servern, koden verkar fungera, skriver ut allt i stil med :

:mozilla.se.eu.dal.net NOTICE AUTH :*** Found your hostname, cached
:mozilla.se.eu.dal.net NOTICE AUTH :*** No Ident response
ERROR :Closing Link: 0.0.0.0 (Ping timeout)

Men sen får jag ERROR? Någon som har en aning om vad det beror på? Lite kod i sammanhanget:

            tcpClient = New TcpClient()
            tcpClient.Connect(strIrcServer, intIrcPort)
            ircReader = New StreamReader(tcpClient.GetStream)
            ircWriter = New StreamWriter(tcpClient.GetStream)
            ircWriter.Write(String.Format("USER {0} {1} * :{2}", strIrcUser, "0", strIrcRealName))
            ircWriter.Flush()
            ircWriter.WriteLine(String.Format("NICK {0}", strIrcNick))
            ircWriter.Flush()
            ircWriter.WriteLine(String.Format("JOIN {0}", strIrcChannel))
            ircWriter.Flush()
Medlem sedan okt. 20023 030 inlägg
#2

Servern skickar en stäng lite då och då innehållandes PING och en massa siffror och bokstäver. Meningen är att du ska ta dessa och skicka tillbaka till servern fast med ordet PONG före. T.ex.

Om du fick

[red]PING 75346543[/red]

ska du skicka tillbaka

[red]PONG 75346543[/red]

Sedan det där med No Ident response: Servern försöker koppla upp till din dator på port 113 har jag för mig och väntar sig att du ska skicka en sträng tillbaka. Minns dock inte vad den vill ha tillbaka tyvärr. :l

Medlem sedan jan. 20012 204 inlägg
#3

Hmm Ping-Pong är löst ska kolla vidare med port 113...

Medlem sedan jan. 20012 204 inlägg
#4

Hmm vad jag kan se så försöker inte servern kontakta mig på port 113. Jag ansluter mig ju mot xx.xx.xx:6667 och den svarar ju där men sen så dör den bara, eller om det är hos mig det dör.

Medlem sedan apr. 20012 266 inlägg
#5

Ident (113) är inget du måste köra utan det bör fungera ändå, fast anslutningsprocessen tar lite längre tid. Att du inte får någon anslutningsrequest på port 113 kan bero på att du t.ex sitter bakom en brandvägg.

Medlem sedan jan. 20012 204 inlägg
#6

Ja sitter bakom brandvägg. Har felsökt hela eftermiddagen men kan inte hitta vad som kan vara fel.

Medlem sedan jan. 20012 204 inlägg
#7

Av någon anledning så fungerar det hyffsat just nu. Kan ansluta mig men sen får jag problem. Vill fånga upp den data som kommer till mig, använder StreamReader och är ansluten till irc. Servern skickar mig 10 rader data så ser jag bara hälften, varannan. Se koden nedan.

skriver ut med denna funktion:

while true
write()
If (IrcReader.ReadLine.StartsWith("ojj")) = True Then
.....
end while

..............
    Function Write()
        Console.Write(IrcReader.ReadLine() & Environment.NewLine())
    End Function

Men om jag tar bort mitt if, så kommer alla skrivas ut.

Medlem sedan mars 20007 896 inlägg
#8

Du kan bara läsa samma rad en gång, så du får lägga in datan som kommer till dig i en temporär sträng eller en buffer.

while true
tmpStr = IrcReader.ReadLine()
Write( tmpStr )
If tmpStr.StartsWith( "ojj" ) = True Then
...
End While

...
Function Write( ByRef myStr As String )
     Console.Write( myStr & Environment.NewLine() )
End Function
265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)