<br />
The part of the DLL that accepts incoming connections is threaded so your server does not freeze waiting for clients.<br />
<br />
It also has threaded file transmission which allows you to send a file from server to client or from client to server without freezing your game.<br />
<br />
Example screenshot:<br />
(link removed)</p>
<p><br />
The next feature I'm planning to add is buffering; fill up a buffer with multiple strings and integers and then send it.<br />
This would decrease the number of sended packets and that would make it much faster.<br />
<br />
(link removed)</p>
<p><br />
<strong class="bbc">Version 1.1.0.0</strong><br />
<br />
Buffering is a method which dramatically increases the speed of your communication.<br />
Every time you send with the normal integer/string functions a new packet is sended.<br />
Sending much packets decreases the speed because they contain much information which costs you bandwith.<br />
When you send with buffering you have all the integers and strings grouped together.<br />
<br />
This is how a buffer of this DLL looks like:<br />
<br />

<br />
The example buffer is created with the following code:<br />
<br />
Sock_NewBuffer ();<br />
Sock_BufferAddString ("String",6);<br />
Sock_BufferAddInteger (300,4);<br />
Sock_BufferAddDouble (12.12,8);<br />
<br />
<strong class="bbc">Version 1.2.0.0</strong><br />
This version comes with functions to limit the upload speed of the threaded file transfer functions.<br />
<br />
<strong class="bbc">Version 1.2.5.0</strong><br />
This version includes two new functions to get actual client numbers.<br />
The previous version reorganized the client numbers when a client was removed, causing client numbers to change.<br />
The client number of a certain client stays the same for the whole session in version 1.2.5.0.<br />
<br />
Example: ( Old version )<br />
Client 1 connects and has client number 1.<br />
Client 2 connects and has client number 2.<br />
<br />
Client 1 disconnects and the server removes the client using Sock_RemoveClient (1).<br />
The client list is reorganized and client 2 automatically gets client number 1.<br />
This is very confusing, because client 2 gets data originally meant for client 1.<br />
<br />
The new version works this way:<br />
Client 1 disconnects.<br />
The server calls Sock_GetActClients, which tells the server there's one client connected.<br />
The server calls Sock_GetActClient (1) to get the client number of the connected client and the function returns 2.<br />
As you can see, client 2 still has client number 2 so it gets the data which was meant for him and not for client 1.</p>
Edited by h0bbel, 19 September 2013 - 06:55 PM.