Hallo,
ich möchte ein Chat über TCP für das Internenetzt also Lan.
Das Problem ist keiner kann sogesagt connecten. Wie kann ich das ändern ?
TCP Lan Chat verbindung schleckt fehl
-
- [ offen ]
-
Freaky -
22. Mai 2010 um 18:50 -
Geschlossen -
Erledigt
-
-
Zitat
Das Problem ist keiner kann sogesagt connecten. Wie kann ich das ändern ?
Wie wärs mit ein paar Details? :pinch:
Ich frage ja auch nicht "Mein Computer geht nicht mehr, was ist kaputt?"...Wenn er Lokal aber nicht über das Internet funktioniert, dann würde ich sagen du musst die entsprechenden Ports im Router öffnen...
-
Sagen wir mal so, er kann keine Verbindung aufbauen sobald man 2 verschiedene PC´s benutzt.
Ist es anderes möglich ausser Ports freischalten ?
bzw. ein offenen Port benutzen ? -
Zitat
Sagen wir mal so, er kann keine Verbindung aufbauen sobald man 2 verschiedene PC´s benutzt.
Ist es jetzt Lokal oder nicht?
Wenn nicht dann liegt es nicht an den Ports ;). -
Wie gesagt das es Intern ist also Lokal
-
haste schon die firewall überprüft? hast du das tcpconnect kommando in einer do-schleife? hast du währenddessen auf dem anderen pc das tccpaccept in einer do-schleife? hast du die richtigen ip´s benutzt?
-
Firewall kA eigentlich kommt ja immer Schild raus
Client
[autoit]#RequireAdmin
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiIPAddress.au3>Global $socket
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Client", 664, 334, 241, 111)
$Group1 = GUICtrlCreateGroup("Benutzer", 4, 0, 197, 241)
$ListView1 = GUICtrlCreateListView("", 10, 14, 186, 222)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Chat", 208, 2, 453, 329)
$ListView2 = GUICtrlCreateListView("", 214, 16, 442, 286)
$Input1 = GUICtrlCreateInput("", 216, 306, 387, 21)
$Button1 = GUICtrlCreateButton("Senden", 608, 306, 47, 21)
GUICtrlSetState (-1,$GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Login", 4, 242, 197, 89)
$Label1 = GUICtrlCreateLabel("ServerIP:", 12, 258, 48, 17)
$IPAddress1 = _GUICtrlIpAddress_Create($Form1, 62, 254, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, FileRead ("serverip.ini"))
$Button2 = GUICtrlCreateButton("Login", 12, 280, 179, 25)
$Label = GUICtrlCreateLabel("Login Status", 14, 308, 179, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
TCPSend($socket, "#Exit:" & @ComputerName)
TCPCloseSocket ($socket)
TCPShutdown ()
Exit
Case $Button1
TCPSend($socket, GUICtrlRead($Input1))
Case $Button2
TCPStartup()
$socket = TCPConnect(_GUICtrlIpAddress_Get($IPAddress1), 65432)
If $socket = -1 Then
GUICtrlSetData ($Label,"Server läuft nicht.")
MsgBox (0,"Fehler","Server läuft nicht.")
Else
TCPSend($socket, "#Name:" & @ComputerName)
GUICtrlSetData ($Label,"Erfolgreich eingelogt.")
GUICtrlSetState ($Button1,$GUI_ENABLE)
GUICtrlSetState ($Button2,$GUI_DISABLE)
EndIf
EndSwitch
WEndServer
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
Global $sClient[1][2], $socket#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Server", 664, 334, 241, 111)
$Group1 = GUICtrlCreateGroup("Benutzer", 4, 0, 197, 241)
$ListView1 = GUICtrlCreateListView("Computername", 10, 14, 186, 222)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Chat", 208, 2, 453, 329)
$ListView2 = GUICtrlCreateListView("Zeit|Computername|Text ", 214, 16, 442, 286)
$Input1 = GUICtrlCreateInput("", 216, 306, 387, 21)
$Button1 = GUICtrlCreateButton("Senden", 608, 306, 47, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Login", 4, 242, 197, 89)
$Label1 = GUICtrlCreateLabel("ServerIP:", 12, 258, 48, 17)
$IPAddress1 = _GUICtrlIpAddress_Create($Form1, 62, 254, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, @IPAddress1)
$Button2 = GUICtrlCreateButton("Server starten", 12, 280, 179, 25)
$Label = GUICtrlCreateLabel("Server Status", 14, 308, 179, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
TCPSend($socket, GUICtrlRead($Input1))
Case $Button2
TCPStartup()
$socket = TCPListen(@IPAddress1, 65432, 100)
If $socket = -1 Then
GUICtrlSetData($Label, "Port Falsch.")
MsgBox(0, "ERROR", "Port Falsch")
Else
TCPSend($socket, "#Name:" & @ComputerName)
GUICtrlSetData($Label, "Server gestartet")
GUICtrlSetState($Button1, $GUI_ENABLE)
GUICtrlSetState($Button2, $GUI_DISABLE)
FileDelete("serverip.ini")
FileWrite("serverip.ini", @IPAddress1)
EndIf
EndSwitch
$TempSocket = TCPAccept($socket)
If $TempSocket <> -1 Then
ReDim $sClient[UBound ($sClient)+1][2]
$sClient[UBound($sClient)-2][0] = $TempSocket
EndIf
For $i = 0 To UBound($sClient) - 1
$rec = TCPRecv($sClient[$i][0], 2048)
If $rec <> "" Then
If StringInStr($rec, "#Name:") Then
$sClient[$i][1] = StringReplace($rec, "#Name:", "")
GUICtrlCreateListViewItem ($sClient[$i][1],$ListView1)
ElseIf StringInStr($rec, "#Exit:") Then
;_GUICtrlListView_GetItemCount
Else
GUICtrlCreateListViewItem (@HOUR & ":" & @MIN & "|" & $sClient[$i][1] & "|" & $rec,$ListView2)
;MsgBox(0, $sClient[$i][1], $rec)
EndIf
EndIf
Next
WEnd;~ Local $start = TimerInit()
[/autoit]
;~ Do
;~ $ConnectedSocket = TCPAccept($socket)
;~ Until $ConnectedSocket <> -1 Or (TimerDiff($start) > 25000)
;~ $sClient[0][0] = $ConnectedSocket -
also:
1.das _GUICtrlIpAddress_Create und _GUICtrlIpAddress_Set und _GUICtrlIpAddress_Get brauchst du nicht, es reicht auch @IPADRESS1
2.wieso so kompliziert?
3.das was mir fast immer auffällt: die ports müssen gleich sein -
Das mit der IP in der Form ist wurst, ich wollte es KUHL haben
Jetzt zu den Ports
Seid wann ist 65432 (Server Port) <> 65432 (Client Port) ? -
Ich seh im Server kein 65432.
seidseit.de -
- Offizieller Beitrag
Ähem:
Zitat[autoit]TCPListen(@IPAddress1, 80, 100)
[/autoit] -
Oh ja sry, das war zum testen *schnell ändern geh*
-
bei dem, was du gepostet hast ist der port, den der client anspricht: 65432 (zeile: 41)
der server nimmt verbindungen an auf port: 80 (zeile: 36) -
Habe das jetzt geändert und auch geändert läuft das nicht über mehrer PC´s
-
Problem liegt immer noch vor