21.04.2018, 01:33
(
Последний раз редактировалось F1N4L; 07.05.2018 в 19:41.
)
SAMP-RCON v.2.0
Hoje vos trago mais uma aplicaзгo em C#, porйm dessa vez trabalhando com sockets.Antes de mais nada quero frisar que este й meu primeiro contato com sockets e, por isso, pode ter pontos a melhorar, mas o sistema estб funcional e estбvel.
O programa envia e recebe atravйs de threads e de forma assнncrona.
Nгo vou trabalhar a seguranзa de forma robusta, pois a conexгo ocorre de forma privada, obviamente. Somente os envolvidos no servidor terгo acesso ao programa.
Seguranзa:
Obviamente eu tinha que limitar o nъmero de tentativas para evitar um possнvel flood e bloquear caso ocorra muitas tentativas.
Код:
#define MAX_LOGIN_ATTEMPTS (5) #define BLOCK_LISTEN_DELAY (5) // Minuto(s) MAX_LOGIN_ATTEMPTS = Nъmero mбximo de tentativas. Caso exceda o limite, a conexгo se torna invбlida e impossнvel de conectar (temporariamente). BLOCK_LISTEN_DELAY = Tempo (em minutos) que a conexгo ficarб inativa em caso de muitas tentativas falhas.
Include:
Код:
#define SOCKET_SEND_PORT (5001) #define SOCKET_RECEIVE_PORT (5002)
Код:
private Int16 portReceive = 5001; private Int16 portSend = 5002; Nгo confundam!!! Se repararem nas portas elas estгo invertidas, mas na verdade estб correto jб que a conexгo ocorre da seguinte forma: SOCKET_SEND_PORT (5001) >>> portReceive (5001) ~~~~~~> O socket da include envia os bytes para o programa e o mesmo os recebe e realiza a conversгo. portSend (5002) >>> SOCKET_RECEIVE_PORT (5002) ~~~~~~> O socket do programa envia os bytes (convertidos posteriormente no plugin) para a include.
Код:
public OnSRconCmdReceived(cmd[], id, args[])
Cada parвmetro corresponde a um campo de texto (como mostrado na screenshot abaixo).
Parвmetros:
cmd: Comando que serб enviado ao servidor. (campo obrigatуrio / mнnimo 1 caractere)
id: ID relacionado ao comando. (campo opcional / em caso de campo nulo o valor retornado й -1)
args: Campo adicional para demais argumentos. (campo opcional / em caso de campo nulo o valor й... nulo)
Код:
stock SRCON_SendSocketData(data[100])
Parвmetro:
data: Informaзхes a serem enviadas ao cliente. (mбx. 100 caracteres)
Screenshot:
Download:
SAMP RCON + Include
Changelog:
Код:
[07/05/2018] * Reformulaзгo do design. * Adicionado funзгo SRCON_SendSocketData para enviar dados ao cliente. * Caixa de texto colorida.
F1N4L pelo programa;
BlueG pelo plugin socket;
SAMP Team.