View Single Post
  #4  
Unread 4th September, 2013, 04:12 PM
Sp0ngeb0b's Avatar
Sp0ngeb0b Sp0ngeb0b is offline
Godlike
 
Join Date: Sep 2008
Location: Germany
Posts: 488
Default

Quote:
Originally Posted by The_Cowboy View Post
Can you explain this TCP transfer algorithm in brief? Thanks.
Basically, the system expands the existing UT client <-> server communication (which is nothing but replication) with a framework which works similiar to the known TCP model. An output buffer (simple String datatype) is created on both ends, server and client side. Inside this string is the actual data which is to be sent to the other machine. The data is shaped in commands so the opposite side is able to understand. So, if you want to send a variable, you will first send a beginning Command, then the command for updating the variable (containing the var name and the new value) and then a closing command. A basic example could look like this:
START VAR VARNAME VARVALUE END
This command will be put inside the output buffer and waits until it is ready to be sent. It won't be sent in one piece though, but will be splitted into several marked packets. Defrost implemented a system which will recognize packet timeouts (= the packet was lost during the transfer) and therefore enables reliable data transfer as the packet will be send until it is received. If you want to check it out for yourself, all the magic happens inside the 'NexgenNetClientController' class, completed by the specific recvStr() function inside the subclasses ('NexgenExtendedClientController').


Quote:
Originally Posted by [rev]rato.skt View Post
Cold you please, put some support to ascii code and write in bold mode in the next upgrade?
Not exactly sure what you mean... Can you be more precise?
And for your information, I'm not updating the Nexgen core itself, since Defrost said he don't want anyone to do an offical update plus I don't really see a reason what needs to be fixed/added what can't be done inside a plugin.
Reply With Quote