Jump to content
Travis

Can't seem to quit user interface while waiting on TCPAccept

Recommended Posts

Hello I am scripting a simple application using TCP functionality.

I encountered a problem that I thought I could I fix by switching to GUI OnEvent mode, however, I still have the same issue. I can walk you through how my script works:

Upon starting the program, the user is presented with a dialog box and asked to choose to start the server or client mode. I'm working on the server mode at the moment so I choose to start the Server mode.

The selection dialog is then hidden and my main GUI comes up. I have some text labels that show me the status, it starts with "Program started, attempting to run as server." Then I go through the process of setting up my TCP sockets and such.

Then, I get to a Do...While loop to get the server to wait for a client to connect.

GUICtrlSetData($dev_connection_status_text,"Awaiting client connection...")
Do
   $socketB = TCPAccept($socketA)
Until $socketB <> - 1

Now the problem is here. While I am waiting for a client to connect, I noticed that I cannot close the program using the Close button on the menu. It seems that my gui is no longer listening for $GUI_EVENT_CLOSE?

I had thought switching to OnEvent mode would fix this. But how can I still have my GUI respond to user input while awaiting this connection?

Share this post


Link to post
Share on other sites

GUICtrlSetData($dev_connection_status_text,"Awaiting client connection...")

Do
   If GuiGetMsg() = -3 Then Exit
   $socketB = TCPAccept($socketA)

Until $socketB <> - 1

Edited by JohnOne

Share this post


Link to post
Share on other sites

Then I suspect you have other code issues.

$hGui = GUICreate("GUI")

$dev_connection_status_text = GUICtrlCreateLabel("idle", 20, 20, 300)

GUISetState()

While 3
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $dev_connection_status_text
            _Func()
    EndSwitch
WEnd


Func _Func()
    GUICtrlSetData($dev_connection_status_text, "Awaiting client connection...")
    TCPStartup()
    $socketA = TCPConnect("127.0.0.1", 7656)
    Do
        If GUIGetMsg() = -3 Then Exit
        $socketB = TCPAccept($socketA)

    Until $socketB <> -1
    GUICtrlSetData($dev_connection_status_text, "connected")
    Beep(400, 100)
EndFunc   ;==>_Func

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...