Jump to content

TCP Sends first message but no others


Recommended Posts

I'm working on a chat program to communicate between me and some friends. I started by editing the TCPSend and TCPRecieve examples in the include file. As it is right now the client will send the first message but the second one never gets to the server.

Client:

GUICreate('Chat', 400, 400)



TCPStartup()

$PreServers1 = IniReadSection('Config.cfg', 'Client-IPs')

$PreServers2 = IniReadSection('Config.cfg', 'Client-Ports')

$PreServers3 = IniReadSection('Config.cfg', 'Client-Pass')

Global $Servers[UBound($PreServers1)][4]

For $i = 0 To UBound($PreServers1) - 1

    $Servers[$i][0] = $PreServers1[$i][1]

    $Servers[$i][1] = $PreServers2[$i][1]

    $Servers[$i][2] = $PreServers3[$i][1]



Next

$Servers[0][0] = UBound($Servers) - 1



GUICtrlCreateEdit('', 5, 25, 390, 290)

$gSend = GUICtrlCreateEdit('', 5, 320, 340, 70)

$gSendButton = GUICtrlCreateButton('Send', 350, 320, 40, 20)

GUISetState()



While 1

    $Msg = GUIGetMsg()

    Select

        Case $Msg = $gSend

            For $i = 1 To $Servers[0][0]

                $Servers[$i][3] = TCPConnect($Servers[1][0], $Servers[1][1])

                Sleep(1000)

                While 1

                    $szData = GUICtrlRead($gSend)

                    GUICtrlSetData($gSend, '')

                    If @error Or $szData = '' Then ExitLoop

                    TCPSend($Servers[$i][3], StringToBinary($szData, 4))

                    If @error Then ExitLoop

                WEnd

            Next

    EndSelect

WEnd

The server is stright out of the help file minus the port being changed to 50000

Edit: Found out the issue was actually in the Edit control (Wrong)

Edit: Solved the issue, it was trying to make a new TCP Connection within the loop and causing issues

New Working Script:

GUICreate('Chat', 400, 400)

TCPStartup()
$PreServers1 = IniReadSection('Config.cfg', 'Client-IPs')
$PreServers2 = IniReadSection('Config.cfg', 'Client-Ports')
$PreServers3 = IniReadSection('Config.cfg', 'Client-Pass')
Global $Servers[UBound($PreServers1)][4]
For $i = 0 To UBound($PreServers1) - 1
    $Servers[$i][0] = $PreServers1[$i][1]
    $Servers[$i][1] = $PreServers2[$i][1]
    $Servers[$i][2] = $PreServers3[$i][1]

Next
$Servers[0][0] = UBound($Servers) - 1

GUICtrlCreateEdit('', 5, 25, 390, 290)
$gSend = GUICtrlCreateEdit('', 5, 320, 340, 70)
ClipPut(GuiCtrlRead($gSend))
$gSendButton = GUICtrlCreateButton('Send', 350, 320, 40, 20)
GUISetState()

Global $Socket = TCPConnect ($Servers[1][0], $Servers[1][1])

While 1
    $Msg = GUIGetMsg()
    Select
        Case $Msg = -3
            Exit
        Case $Msg = $gSendButton
             $Send = GUICtrlRead($gSend)
             GuiCtrlSetData($gSend, '')
             TCPSend($Socket, $Send)
     EndSelect
WEnd
Edited by AliceDemetri
Link to comment
Share on other sites

Please mark your post as solved. Thanks.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...