Ich habe ein problem und habe noch nichts dazu gefunden
1.Frage
wie kann ich vom Client den wert von $name zum server schicken so das er im eintrag als name verwendet wird?
2.Frage
Wie kann ich die daten die im edit des Servers angezeigt werden auch im Client anzeigen hab dazu noch nix gefunden und weis nicht wie es geht
Mein Client
Spoiler anzeigen
;CLIENT! Starte mich, nachdem der Server gestartet wurde!!!!!!!!!!!!!!!
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{ENTER}","_senden")
Global Const $WS_POPUP = 0x80000000
Global Const $WS_MAXIMIZEBOX = 0x00010000
Global Const $WS_MINIMIZEBOX = 0x00020000
Global Const $WS_SIZEBOX = 0x00040000
Global Const $BS_MULTILINE = 0x2000
TCPStartUp()
Dim $szServerPC = @ComputerName
Dim $szIPADDRESS = TCPNameToIP($szServerPC)
Dim $nPORT = 33891
Dim $ConnectedSocket = -1
$ConnectedSocket = TCPConnect($szIPADDRESS,$nPORT)
[/autoit] [autoit][/autoit] [autoit]Dim $szData
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If @error Then
MsgBox(4112,"Fehler","TCPConnect schlug mit folgendem WSA-Fehler fehl: " & @error)
Else
While 1
$name = InputBox("Name","Bitte deinen Name eingeben:")
TCPSend($ConnectedSocket,$name)
Sleep(1000)
_senden()
WEnd
EndIf
Func _senden()
$gui = GUICreate("TCP Send",300,200)
$szData = GUICTrlCreateInput("",10,10)
$sendenbutton = GUICTrlCReateButton("Senden",10,50)
GUISETSTate()
If @error Or $szData = "" Then Exit
TCPSend($ConnectedSocket,GUICtrlRead($szData))
If @error Then Exit
While 1
$msg = GUIGETMSG()
Switch $msg
Case $sendenbutton
TCPSend($ConnectedSocket,GUICTrlRead($szData))
Case -3
Exit
EndSwitch
WEnd
EndFunc
Mein Server
Spoiler anzeigen
;SERVER!! Starte mich zuerst !!!!!!!!!!!!!!!
#include <GUIConstants.au3>
Dim $szIPADDRESS = @IPAddress1
Dim $nPORT = 33891
TCPStartUp()
[/autoit] [autoit][/autoit] [autoit]$MainSocket = TCPListen($szIPADDRESS, $nPORT)
[/autoit] [autoit][/autoit] [autoit]If $MainSocket = -1 Then Exit
[/autoit] [autoit][/autoit] [autoit]Dim $GOOEY = GUICreate("Mein Server (IP: " & $szIPADDRESS & ")",300,200)
Dim $edit = GUICtrlCreateEdit("",10,10,280,180)
GUICTrlSEtState($edit,$GUI_DISABLE)
GUISetState()
Dim $ConnectedSocket = -1
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
Dim $szIP_Accepted = SocketToIP($ConnectedSocket)
Dim $msg, $recv
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
$recv = TCPRecv( $ConnectedSocket, 2048 )
If @error Then ExitLoop
; Erneuert das Edit Steuerelement mit dem, was wir empfangen haben.
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$name & " " & "(" & (@HOUR & " " & ":" & @MIN) & ")" & @CRLF & $recv &@CRLF & GUICTrlRead($edit))
WEnd
If $ConnectedSocket <> -1 Then TCPCloseSocket( $ConnectedSocket )
[/autoit] [autoit][/autoit] [autoit]TCPShutDown()
[/autoit] [autoit][/autoit] [autoit]; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr = DLLStructCreate("short;ushort;uint;char[8]")
Local $aRet = DLLCall("Ws2_32.dll","int","getpeername","int",$SHOCKET, _
"ptr",DLLStructGetPtr($sockaddr),"int_ptr",DLLStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DLLCall("Ws2_32.dll","str","inet_ntoa","int",DLLStructGetData($sockaddr,3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
EndFunc
Ich hoffe mir kann jemand helfen