Jump to content

Send TCP Packets to clients


Recommended Posts

Hello

I have an autoit script that i want it to be a TCP Server and send packet to connected clients

I have successfully created TCP Server and clients can connect but the problem is that i sont know how to send packet to clients

There is my autoit code

TCPStartup()

Local $Socket = TCPListen("127.0.0.1",14)
Local $Connection = TCPAccept($Socket)

While True
TCPSend($Socket,Binary(0))
Sleep(1000)
WEnd

Thanks

Edited by Shahriyar
Link to comment
Share on other sites

Do a search on here for answers to this, it's been talked about as recently as last week.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Now i wrote this code but even this does not works

TCPStartup()

Local $Socket = TCPListen("127.0.0.1",14)
Dim $Client[1024]
Local $MyInt = 0

While True
Local $Connection = TCPAccept($Socket)

If $Connection >= 0 Then

$Client[$MyInt] = $Connection
$MyInt += 1

For $Counter = 1 to $MyInt
TCPSend($Client[$Counter],StringToBinary("Hello !"))
Next

EndIf

Sleep(500)
WEnd
Edited by Shahriyar
Link to comment
Share on other sites

clien:

$YOURIP = ""
TCPStartup()
DO
  $CONNECT = TCPCONNECT($YOURIP , $PORT)
UNTIL $CONNECT <> -1
DO
$RECVPACK = TCPRECV($CONNECT, 4024)
IF @ERROR THEN
MsgBox(0,"","server shutdown")
TCPShutdown()
endif
UNTIL $RECVPACK <> ""
MsgBox(0,"",$RECVPACK)
TCPShutdown()
Link to comment
Share on other sites

Ok now i make it work with this and the help of TCP UDF

#include "TCP.au3"
TCPStartup()

Local $Socket = _TCP_Server_Create(14)
Local $Connection = TCPAccept($Socket)
Dim $Client[1025]
Local $ConnectedClients

_TCP_RegisterEvent($Socket, $TCP_NEWCLIENT, "NewClient")
_TCP_RegisterEvent($Socket, $TCP_DISCONNECT, "ClientDisconnects")

Func NewClient($hSocket, $iError)
$Client[FindFreeSocket()] = $hSocket
$ConnectedClients = FindConnectedClients()

For $Counter = 0 to $ConnectedClients
TCPSend($Client[$Counter],StringToBinary("Hello !"))
Next
EndFunc

Func ClientDisconnects($hSocket, $iError)
For $Counter = 0 to 1024
If $Client[$Counter] = $hSocket Then
$Client[$Counter] = -1
EndIf
Next
EndFunc

Func FindFreeSocket()
For $Counter = 0 to 1024
If $Client[$Counter] < 0 Then
Return $Counter
EndIf
Next
EndFunc

Func FindConnectedClients()
For $Counter = 0 to 1024
If $Client[$Counter] < 0 And $Client[$Counter + 1] < 0 And $Client[$Counter + 2] < 0 Then
Return $Counter - 1
EndIf
Next
EndFunc

While True

Sleep(10)

WEnd

But now i think my FindConnectedClients() need some improvements

Does anyone can take a look on it ?

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