Sintax feia dessa linguagem '-'
Mas quanto ao codigo, tu ta usando separador '|' para diferenciar entre um dado e outro? Isso não é nem um pouco eficiente, o normal quando se trabalha com packets é basear pelos bytes.
Se tu vai ler um int(2bytes), se vai ler uma string tem 2 bytes pro tamanho da string e o restante de acordo com o tamanho indicado pelos dois bytes, char(1byte) e etc
Eu fiz um code pra isso em lua uma vez, faz um tempinho ja mas acho que da pra esclarecer o que eu to tentando te explicar






info
Grupo: Visconde
Registrado: 27/02/13
Posts: 446
Reputação: +282
Gênero: Masculino
[Open-Library] Simple Packet Structure
developer: Tony Araújo (OrochiElf)
version: 0.1
Introdução
Olá pessoal, hoje venho mostrar a vocês uma nova estrutura de um pacote de dados para Visual Basic (vb.Net).
Então galera, eu estou criando um jogo multi-player e na parte de comunicação (servidor <-> client) eu tive uma dificuldade de escrever e ler em Bytes então eu tive a ideia de criar esta nova estrutura de pacote para facilitar esta comunicação. Bem, eu consegui facilitar essa troca de informações apenas criando um novo pacote, escrevendo as informações, então transformando em bytes e enviando por stream até o destinatário, quando eu recebia as bytes eu as transformava em pacote de novo e iniciava a leitura dos valores.
Breve criarei um novo tutorial de como fazer essa comunicação, e também estou terminando uma nova estrutura de comunicação Socket.
Estrutura do pacote
A nova estrutura do pacote consiste em uma variável de texto (string) que armazena os valores separados por "|", com fácil escrita e leitura.
É possível escrever 4 tipos de objetos dentro do pacote, tais como, Integer (valor numérico), String (valor textual), Boolean (valor de verdadeiro ou falso) e por fim o Packet(todos os valores de um novo Packet/Pacote), para quem não entendeu, sim é possível escrever um pacote dentro de um pacote.
Funções
A nova estrutura conta com funções de manipulação do pacote, como:
write(_value) -> usada para escrever um novo valor no pacote (Integer, String, Boolean, Packet)read(index) -> retorna um valor de dentro da lista de valores do pacote guiado pela indexreadInteger() -> retorna o próximo valor de acordo com o leitor em formato de IntegerreadString() -> como a função acima, retorna o próximo valor de acordo com o leitor em formato de StringreadBoolean() -> como as demais, em formato de BooleanreadPacket() -> retorna o valor em formato de Packet (pacote)toBytes() -> converte o valor do pacote para bytestoPacket(_bytes) -> converte o valor de bytes para o pacoteProject
Tutorial de manipulação
Source Code (v0.1)