Jump to content

Recommended Posts

Posted (edited)

Need help getting the TCPSend command to send an array...

$header = DllStructCreate("ubyte var1;ubyte var2;ubyte var3;ubyte var4;ubyte var5;ubyte var6;ubyte var7;ubyte var8")
$header1 = DllStructCreate("ubyte var1;ubyte var2")

DllStructSetData($header,1,"$E")
DllStructSetData($header,2,"$R")
DllStructSetData($header,3,$bin2)
DllStructSetData($header,4,$bin)
DllStructSetData($header,5,$nu)
DllStructSetData($header,6,$nu1)
DllStructSetData($header,7,$nu3)
DllStructSetData($header,8,$nice)
DllStructSetData($header1,1,"$A")
DllStructSetData($header1,2,"$E")

Dim $sendheader[10]
$sendheader[0] = DllStructGetData($header,1)
$sendheader[1] = DllStructGetData($header,2)
$sendheader[2] = DllStructGetData($header,3)
$sendheader[3] = DllStructGetData($header,4)
$sendheader[4] = DllStructGetData($header,5)
$sendheader[5] = DllStructGetData($header,6)
$sendheader[6] = DllStructGetData($header,7)
$sendheader[7] = DllStructGetData($header,8)
$sendheader[8] = DllStructGetData($header1,1)
$sendheader[9] = DllStructGetData($header1,2)

_ArrayDisplay($sendheader, "Whole array" ) ;This confirmed the array is set up with the information i want after having it displayed...
; I connect to my LAN server
$socket = TCPConnect( $ip, $port)
: I send the the packet in ubyte array formation...
TCPSend($socket, $sendheader)
; test server shows this Client Connected: 127.0.0.1
; but it doesnt show any data sent from the tcpsend command
; i dont know why it doesnt show any data because
; ive sent data in ubyte by the tcpsend command and it works but when i try to send a array in ubyte formation it doesnt work....
; but my guess at this point is for some reason the tcpsend command cant sent an array that is in ubyte formation?

Also I dont get any errors when running the script...

Edited by Shimgreen
Posted (edited)

Nope, it's not the way to do it. You need to send each subscript a time. Example:

For $i = 0 To UBound($sendheader)-1
    TCPSend($socket, $sendheader[$i])
Next

Try for example this: ConsoleWrite($sendheader & @LF) and you'll see why it's not working.

if you need the receiver to get the chunk as it is and not break the receiver it's functionality of waiting to a chunk of data you can create a pipe '|' separated string of the chunk and send it as a whole. The receiver will then split it on pipes.

Edited by Authenticity

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
  • Recently Browsing   0 members

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