Hallo, bin gerade dabei ein bisschen an einem Messenger rum zu basteln. Wollte eigentlich alle in ein Fenster, hab aber keinen Source-Code gefunden den ich mal auseinander nehmen kann um mir mal die funktionsweise an zu schauen...
Jetzt arbeite ich quasi erstmal mit einem Server und einem Client. der Server funktioniert soweit und empfängt die Daten vom echten client.
jetzt habe ich versucht das der Client statt einer Inputbox auch ein GUI sein soll, damit das nicht immer kurz zu geht wenn ich eine Nachricht schicke.
Jetzt habe ich aber das Problem das sich der neue Client direkt nach dem Start wieder schließt. hat jemand eine Ahnung woran das liegen kann?
Hier noch der Code von dem Client:
Spoiler anzeigen
;==============================================
;==============================================
;CLIENT! Start Me after starting the SERVER!!!!!!!!!!!!!!!
;==============================================
;==============================================
Func Example2()
; Set Some reusable info
;--------------------------
Local $ConnectedSocket, $szData
; Set $szIPADDRESS to wherever the SERVER is. We will change a PC name into an IP Address
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv
$GOOEY = GUICreate("My Server (IP: " & $szIPADDRESS & ")", 500, 400)
$edit = GUICtrlCreateEdit("", 10, 10, 480, 280)
Local $Input = GUICtrlCreateInput("hi", 10, 300, 480, 80)
$Click = GuiCtrlCreateButton ( "Send", 500, 350, 25, 40)
GUISetState()
; Start The TCP Services
;==============================================
TCPStartup()
; Initialize a variable to represent a connection
;==============================================
$ConnectedSocket = -1
;Attempt to connect to SERVER at its IP and PORT 33891
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
; If there is an error... show it
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
; If there is no error loop an inputbox for data
; to send to the SERVER.
Else
;Loop forever asking for data to send to the SERVER
While 1
$nMsg = GuiGetMsg ()
Switch $nMsg
; If they cancel the InputBox or leave it blank we exit our forever loop
Case @error
ExitLoop
Case $Click
; InputBox for data to transmit
$szData = GUICtrlRead ($Input)
; We should have data in $szData... lets attempt to send it through our connected socket.
TCPSend($ConnectedSocket, $szData)
; If the send failed with @error then the socket has disconnected
;----------------------------------------------------------------
;~ Case @error
;~ ExitLoop
EndSwitch
WEnd
EndIf
EndFunc ;==>Example
Edit Oscar: Spoiler-Tags hinzugefügt. Bitte bei längeren Quelltexten zusätzlich zu dem AutoIt-Tag auch den Spoiler-Tag benutzen!