this might help
time functions
Code:
global function get_tick_count()
return w32Func(xGetTickCount,{})
end function
global atom start_time
start_time=get_tick_count()
global function current_time()
return w32Func(xGetTickCount,{})-start_time
end function
Ping received, pong sent back instantly
Code:
procedure ping_packet_read(integer client,integer inputstream)
object res
sequence write,temp
res=input_stream_readint(inputstream)
write=""
write=writeint(write,res) --serial
write=writeint(write,current_time()) --time
temp=reverse(int_to_bytes(length(write)+5)) &pong_packet
write=rc4_arcfour_encrypt_block(client_list[client][client_rc4_2],write)
socket_send_data(client,temp&write)
end procedure
packet_read_used[ping_packet+1]=-1
packet_read_id[ping_packet+1]=routine_id("ping_packet_read")