I'm preparing an client, I tested it on windows and it worked perfectly.
But when I switched to my Linux VPS ubuntu, the server simply closes when using socket_connect
Код:
public OnPlayerConnect(playerid)
{
new pIP[16];
new string[32];
bac_Socket[playerid] = socket_create(TCP);
GetPlayerIp(playerid, pIP, sizeof(pIP));
IsACConnected[playerid] = false;
IsCheater[playerid] = false;
UpdateNeeded[playerid] = false;
format(string, sizeof(string), "connected |%d| ,%s,", playerid, CURRENT_VERSION); // azeite
socket_connect(bac_Socket[playerid], pIP, 4000);
socket_send(bac_Socket[playerid], string, sizeof(string));
return 1;
}
public onSocketAnswer(Socket:id, data[], data_len)
{
new playerid;
new output[4][512];
new md5Hash[512];
explode(output, data, "'"); // template: [ playerid'status'UID'md5Hash ]
playerid = strval(output[0]);
md5Hash = output[3];
if(strfind(output[1], "secure", true) != -1)
{
playerid = strval(output[0]);
IsACConnected[playerid] = true;
}
else if(strfind(output[1], "cheater", true) != -1)
{
SendClientMessage(playerid, ANTICHEATER_COLOR, "[BrasilianZ Anti-Cheater]: {FFFFFF}Vocк foi kickado do servidor. Motivo: Arquivos suspeitos foram detectados.");
return SetTimerEx("KickP", 1500, false, "i", playerid);
}
else if(strfind(output[1], "off", true) != -1)
{
IsACConnected[playerid] = false;
}
else if(strfind(output[1], "online", true) != -1)
{
IsACConnected[playerid] = true;
}
else if(strfind(output[1], "updateneed", true) != -1)
{
IsACConnected[playerid] = true;
UpdateNeeded[playerid] = true;
}
else
{
IsACConnected[playerid] = false;
}
if(strcmp(SERVER_MD5HASH, md5Hash))
{
SendClientMessage(playerid, ANTICHEATER_COLOR, "[BrasilianZ Anti-Cheater]: {FFFFFF}Seu Cliente Anti-Cheater foi modificado.");
return SetTimerEx("KickP", 1500, false, "i", playerid);
}
return 1;
}
I believe it happened because port 4000(TCP/UDP) is not released on Linux. If that is the problem, please tell me how to release it.