Jump to content

Recommended Posts

Posted (edited)

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
Posted

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

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...