ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
1577
1577
EMPFEHLEN
-
Ich habe mit den Forum einträgen die man hier über TCP Listener/Client findet angesehen und daraufhin einen TCP Listener und einen TCP Client gebaut und ich will nur einen Befehl übersenden das geht auch aber leider nur Lokal also mit der IP:127.0.0.1 aber so bald ich das im netzt versuche dann bleibt der Server Host = Listener.AcceptTcpClient() Hängen auch wenn der Client einen String schickt könnte das an meinem Ruter liegen oder an sonstige netzt Einstellungen oder einfach nur an der Programmierung?
Ich bitte um Hilfe
-
Hallo Vlami,
Hast du den entsprechenden Port auf dem Rechner freigegeben, auf dem der Server-Teil läuft?
Es kann natürlich auch an deinem Programm liegen. Poste doch bitte einmal die Teile für den Server und den Client.
-
Hi,
Du musst am Router deinen Port an den entsprechenden PC weiterleiten. Einfach mal die Konfigurationen durchforsten. Bei mir musste ich auch noch den Port bei der Firewall freigeben.
Denn die IP die du nach außen siehst (wieistmeineip.de) ist die deines Routers. Der Router weiß aber nichtan wen er Anfragen die an ihn geschickt werden weiterleiten soll
Gruß
ErikGeändert von Erik (02.01.10 um 10:33 Uhr) Grund: mit meinem Deutsch gehts den Bach runter
-
Hier ist mein Code zum Server und Client und ich denke jetzt stark das dann am Code liegt weil ich mit einem anderen Code denn ich aus dem 101Beispielen von Microsoft habe das geschafft habe einen String zu übergeben. Es ist nur einwenig zu Kompliziert das in mein Prog einzugeben weil ich auch gestehen muss dass ich neu in diesem Thema bin
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Text Imports Microsoft.VisualBasic Namespace Multitasking_Privat_Verbindung_lan Public Class ClasLan_Server Public ip As String = "127.0.0.1" Public port As Integer Private AddrIP As IPAddress = IPAddress.Parse(ip) Private Listener As New TcpListener(AddrIP, port) Private Host As New TcpClient() Private Networkstream1 As NetworkStream Public Function Time_stream() As Boolean If Listener.Pending = True And Host.Connected = False Then Host = Listener.AcceptTcpClient() Networkstream1 = Host.GetStream Time_stream = True Else Time_stream = False End If End Function Public Function Empfang() As String Dim wert As String Dim ruck As String wert = "" If Host.Client.Available > 0 Then Dim Buffer(Host.Client.Available) As Byte Networkstream1.Read(Buffer, 0, Host.Client.Available) For Each item As Byte In Buffer wert &= Microsoft.VisualBasic.Chr(item) Next End If Send("Der befehl wird versucht bearbeitet zu werden!") ruck = Net_Server_Privat_Befehle(wert) Empfang = ruck 'Call close() 'Call server_start() End Function Public Sub Send(ByVal massage As String) Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(massage) Networkstream1.Write(msg, 0, msg.Length) Call close() Call server_start() End Sub Public Sub server_start() 'Dim Listener As New TcpListener(Addr, 13000) Listener.Start() ForAuswahl.Time_Lan.Enabled = True End Sub Public Sub close() Networkstream1.Close() ForAuswahl.Time_Lan.Enabled = False End Sub Public Sub server_stop() Dim argunull As Object Dim aus_gabe As String Try Networkstream1.Close() Listener.Stop() ForAuswahl.Time_Lan.Enabled = False Catch e As NullReferenceException argunull = e Listener.Stop() ForAuswahl.Time_Lan.Enabled = False Catch e As ArgumentNullException argunull = e aus_gabe = "ArgumentNullException;" Catch e As SocketException argunull = e aus_gabe = "SocketException;" End Try End Sub End Class Public Class ClasLan_Client Public Function NetClient(ByVal server As [String], ByVal PORT As Int32, ByVal message As [String]) As String Dim gesentete_nachricht As String Dim argunull As Object ' Create a TcpClient. ' Note, for this client to work you need to have a TcpServer ' connected to the same address as specified by the server, port ' combination. Try Dim client As New TcpClient(server, PORT) Try ' Translate the passed message into ASCII and store it as a Byte array. 'Transformiert V: massage in ascii um unt schreibt es in ein beyt rein muss sein! Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message) ' Get a client stream for reading and writing. ' Stream stream = client.GetStream(); 'Nimmt einen server und spricht den so an das er schreiben und lesen kann Dim stream As NetworkStream = client.GetStream() ' Send the message to the connected TcpServer. 'Sendet eine byte V über das netz stream.Write(data, 0, data.Length) 'Gesendete Nachricht in V schreiben gesentete_nachricht = "Sent: " & message ' Receive the TcpServer.response. ' Buffer to store the response bytes. data = New [Byte](256) {} ' String to store the response ASCII representation. Dim responseData As [String] = [String].Empty ' Read the first batch of the TcpServer response bytes. Dim bytes As Int32 = stream.Read(data, 0, data.Length) responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes) NetClient = "Antwort: " & responseData ' Close everything. stream.Close() client.Close() Catch e As NullReferenceException client.Close() argunull = e NetClient = "NullReferenceException;" Catch e As ArgumentNullException argunull = e NetClient = "ArgumentNullException;" Catch e As SocketException argunull = e NetClient = "SocketException;" End Try Catch e As SocketException argunull = e NetClient = "SocketException;" End Try End Function End Class End Namespace
Ich starte den Server und frage ihn dann mit einem Timer ab Geht nicht also habe ich auch schon mit einem Code Probiert der die form einfrieren läst geht aber auch nicht bei beiden hat der das prob das die hier stehen bleiben (Host = Listener.AcceptTcpClient()) trotz das sich ein Client einwählt und auch ein String schickt
-
Hi,
kann dein Client denn eine Verbindung zum Server aufbauen?
Zitat von Vlami
Gruß
Erik
-
Ja und Nein
wenn ich mich mit dem Client einlogge dann schickt der einen String (Kommt nichts an) danach wartet der auf Rückgabe und wenn ich dann den Server ausmache dann kommt ein SocketException Fehler also nach dem moto die Verbindung wurde vorzeitig beendet. Der Server bleibt beim debug bei Host = Listener.AcceptTcpClient() stehen ka ob das dir was sagt
-
Hi ich bin es noch mal ich habe das Problem jetzt über die Nettzwerg beisiele von Microsoft gelöst
ich habe dann den Code in mein prog übernommen und zwar in ein Modul anstatt in die form Funktioniert auch ganz gut
habe jetzt nur das Problem das der mir nichts ausgibt aber auf allen anderen Clients schon
könnte mir da bitte einer helfen
-
Hey,
also "er" bleibt deswegen bei
"hängen", weil das eine blockierende Methode ist, diese lagert man i.d.R. aus, z.B. in einen anderen Thread.Code :1
Socket.Accept();
Dein Problem mit dem Datenempfang wird eventuell daran liegen, dass das Serverprogramm auf Deinem PC läuft und die Ports, die der Server benutzt auch Deine sind, aber das ist nur eine Vermutung, weil das aus dem Codeschnipsel leider nicht hervorgeht.
MfG VScan„Jeder Fehler erscheint unglaublich dumm, wenn Andere ihn begehen.“
Georg Christoph Lichtenberg
Netiquette (vA §15)
Codetags/Codeboxen
Sehr gut gelöste Beiträge bitte mit einem "Danke" abschließen, danke :D
Ähnliche Themen
-
RMI über Netzwerk (nicht lokal !)
Von zerrome im Forum JavaAntworten: 18Letzter Beitrag: 15.01.08, 11:59 -
AJAX geht lokal aber nicht im www
Von Eiszwerg im Forum Javascript & AjaxAntworten: 15Letzter Beitrag: 30.08.07, 22:16 -
Script lokal ausführen - geht nicht.
Von HeinerK im Forum PHPAntworten: 13Letzter Beitrag: 24.11.06, 14:30 -
Smarty. Läuft lokal, aber nicht im web
Von mille im Forum PHPAntworten: 10Letzter Beitrag: 23.08.05, 12:56 -
Skript geht lokal aber auf dem Server nicht
Von Mako im Forum PHPAntworten: 8Letzter Beitrag: 16.08.04, 23:26





Zitieren
Login





