Time to share my latest creation. A sockets later for Arma. It allows for easy sharing of in game data with other processes and computers.
It is secure in that it does not allow any new connection end points to be defined on the fly via sqf I.e you have to configure all connection details prior to starting Arma. This should reduce the potential for abuse by game hackers and script kiddies.
The extension pretty easy to use and it uses killzonekids threading Arma extension to handle sending end returning data this means that each call is prefixed with either an “s” for send or an “r” for retrieve. I plan on releasing an sqf library to manage the socket life cycle and make sending and receiving data easier.
Each “s” call returns a ticket number. This ticket number should then be used to call “r:ticketnumber” until all data has been received. If the requested ticket is not ready it will return “WAIT”. Else if that ticket does not exist or had already been Retrieved it will return “EMPTY”.
There are two types of return: single part and multipart. Single part returns are prefixed with “0:” followed by the data and multipart with “1:totalPackets:currentPacket:” followed by the data this allows easy transfer of larger data structures, and a basic integrity check: whether all tickets have been recieved succesfully.