Gateway_man Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 sry bin jetzt noch nicht so fit und die Fehlermeldungen sagen mir jetzt auch nicht so viel, sofern ihr was wisst bitte sagen ;-) Anfangs dachte ich das der Puffer überfüllt ist und habe ihn beim schließen der anwendung gelöscht allerdings wars das dann doch nicht :-( würde mich auf baldige antwort freuen. Simon Zitieren
Guybrush Threepwood Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 Der Host hat die Verbindung beendet Zitieren
Gateway_man Geschrieben 14. Januar 2009 Autor Geschrieben 14. Januar 2009 was so ja nicht stimmt der client beendet und aus irgeneinem grund zwingt er damit den host sich zu schließen. Waum?!?!?!??! Zitieren
Amstelchen Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 Waum?!?!?!??! wasseradern oder luftfeuchtigkeit. im ernst, würdest du eventuell die zeilen, bei denen die exception geworfen wird, posten, würde man da nicht raten müssen. das mehrfache aneianderreichen von fragezeichen und rufzeichen machen die fragestellung im übrigen auch nicht besser. s'Amstel Zitieren
Gateway_man Geschrieben 14. Januar 2009 Autor Geschrieben 14. Januar 2009 (bearbeitet) Tut mir leid, dachte die Fehler wären für euch schon ausschlagebend, die Zeile um die es sich handelt scheint diese zu sein. Da es ein Laufzeitfehler ist, wird mir im codefenster nicht angezeigt welche Zeile, jedoch steht in dem Fehler, das dieser wohl bei Zeile 99 sei. Nun dies wäre dann die betreffende: networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) Mfg Simon PS: Ich machs mal einfacher und Poste den ganzen Server code rein :-D Imports System.Net.Sockets Imports System.Text Module Module1 Dim clientsList As New Hashtable Sub Main() Dim serverSocket As New TcpListener(8888) Dim clientSocket As TcpClient Dim infiniteCounter As Integer Dim counter As Integer serverSocket.Start() msg("Chat Server Started ....") counter = 0 infiniteCounter = 0 For infiniteCounter = 1 To 2 infiniteCounter = 1 counter += 1 clientSocket = serverSocket.AcceptTcpClient() Dim bytesFrom(10024) As Byte Dim dataFromClient As String Dim networkStream As NetworkStream = _ clientSocket.GetStream() networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom) dataFromClient = _ dataFromClient.Substring(0, dataFromClient.IndexOf("$")) clientsList(dataFromClient) = clientSocket broadcast(dataFromClient + " Joined ", dataFromClient, False) msg(dataFromClient + " Joined chat room ") Dim client As New handleClinet client.startClient(clientSocket, dataFromClient, clientsList) Next clientSocket.Close() serverSocket.Stop() msg("exit") Console.ReadLine() End Sub Sub msg(ByVal mesg As String) mesg.Trim() Console.WriteLine(" >> " + mesg) End Sub Private Sub broadcast(ByVal msg As String, _ ByVal uName As String, ByVal flag As Boolean) Dim Item As DictionaryEntry For Each Item In clientsList Dim broadcastSocket As TcpClient broadcastSocket = CType(Item.Value, TcpClient) Dim broadcastStream As NetworkStream = _ broadcastSocket.GetStream() Dim broadcastBytes As [Byte]() If flag = True Then broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg) Else broadcastBytes = Encoding.ASCII.GetBytes(msg) End If broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length) broadcastStream.Flush() Next End Sub Public Class handleClinet Dim clientSocket As TcpClient Dim clNo As String Dim clientsList As Hashtable Public Sub startClient(ByVal inClientSocket As TcpClient, _ ByVal clineNo As String, ByVal cList As Hashtable) Me.clientSocket = inClientSocket Me.clNo = clineNo Me.clientsList = cList Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat) ctThread.Start() End Sub Private Sub doChat() Dim infiniteCounter As Integer Dim requestCount As Integer Dim bytesFrom(10024) As Byte Dim dataFromClient As String Dim sendBytes As [Byte]() Dim serverResponse As String Dim rCount As String requestCount = 0 For infiniteCounter = 1 To 2 infiniteCounter = 1 Try requestCount = requestCount + 1 Dim networkStream As NetworkStream = _ clientSocket.GetStream() networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom) dataFromClient = _ dataFromClient.Substring(0, dataFromClient.IndexOf("$")) msg("From client - " + clNo + " : " + dataFromClient) rCount = Convert.ToString(requestCount) broadcast(dataFromClient, clNo, True) Catch ex As Exception MsgBox(ex.ToString) End Try Next End Sub End Class End Module Bearbeitet 14. Januar 2009 von Gateway_man Zitieren
AndiE Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 in den for Schleifen scheint ein Fehler zu sein. Zitieren
Gateway_man Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 hm ein syntax fehler in der For schleife ist es nicht, denn würde er mir ja gleich bemengeln, also kann es ja nur ein logischer Fehler sein, der während der Laufzeit auftritt.Aber irgendwie kann ich diesen fehler nicht nachvollziehn :-( Zitieren
AndiE Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 For infiniteCounter = 1 To 2 infiniteCounter = 1 Du setzt den Schleifenindex immer wieder auf 1. Das könnte eine Endlosschleife ergeben. Zitieren
Guybrush Threepwood Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 Daher wahrscheinlich auch der Name infiniteCounter... Ansonsten sorry hab nicht weiter drüber geschaut, bei Vb bekomm ich immer Augenkrebs Zitieren
Gateway_man Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 omg stimmt vedammt da hatte ich wohl wieder tomaten auf den Augen. Danke euch ;-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.