Hello there!
I've tried using socket for my plugins today, and it went quite fine, but for some reason I cant get SocketReceive func called, never.
Code:
new Handle:Socket;
public Action:Command_SubNeeded(client, args)
{
new port = StringToInt(DestPort);
Socket = SocketCreate(SOCKET_TCP, OnSocketError);
SocketConnect(Socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, Dest, port);
CreateTimer(1.0, Timer_SendPacket);
return Plugin_Handled;
}
public OnSocketError(Handle:sock, const errorType, const errorNum, any:arg)
{
LogError("socket error %d (errno %d)", errorType, errorNum);
CloseHandle(sock);
}
public OnSocketConnected(Handle:sock, any:arg)
{
#if defined DEBUG
CPrintToChatAll("[Debug] Fired OnSocketConnected();");
#endif
}
public OnSocketReceive(Handle:sock, String:receiveData[], const dataSize, any:arg)
{
PrintToChatAll("%s", receiveData);
#if defined DEBUG
CPrintToChatAll("[Debug] Fired OnSocketReceive();");
#endif
CloseHandle(sock);
}
public OnSocketDisconnected(Handle:sock, any:arg)
{
CloseHandle(sock);
#if defined DEBUG
CPrintToChatAll("[Debug] Fired OnSocketDisconnected();");
#endif
}
public Action:Timer_SendPacket(Handle:timer)
{
decl String:requestStr[256];
Format(requestStr, sizeof(requestStr), "This is a test between servers");
SocketSend(Socket, requestStr, 256);
#if defined DEBUG
CPrintToChatAll("[Debug] Fired Timer_SendPacket(%s);", requestStr);
#endif
}
As a result, I get the following in my serv(IP and Port are correct)
[Debug] Fired OnSocketConnected();
[Debug] Fired Timer_SendPacket(This is a test between servers);
[Debug] Fired OnSocketDisconnected();
But i never get the actual PrintToChat message.
-
Thanks, Eden