sorry if I put a wrong section.
I try to write a code to get the server rules.
code here.
PHP Code:
#include<iostream>
#include<windows.h>
#define ADDRESS "219.133.59.20"
#define PORT 27015
int main(void)
{
short wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD (1, 1);
if (WSAStartup (wVersionRequested, &wsaData) != 0)
{
return 1;
}
int sock, recv;
struct sockaddr_in server;
int server_len = sizeof(struct sockaddr_in);
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock == SOCKET_ERROR)
{
return 1;
}
memset(&server, 0, sizeof (server));
server.sin_addr.s_addr = inet_addr(ADDRESS);
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
char buffer[2048];
BOOL SetSocketTimeout(int &s, int nTime, BOOL bRecv);
SetSocketTimeout(sock,1000, FALSE);
sendto(sock, "\xFF\xFF\xFF\xFF\x56\xFF\xFF\xFF\xFF", 9, 0, (struct sockaddr *)&server, server_len);
recv = recvfrom(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&server, &server_len);
if (buffer[4] == 0x41)
{
printf("First Recv\n");
printf("%s\n%i\n", buffer, strlen(buffer));
char Data[9];
strcpy(Data, "\xFF\xFF\xFF\xFF\x56");
strncat(Data, &buffer[5], 4);
Data[9] = 0;
sendto(sock, Data, 9, 0, (struct sockaddr *)&server, server_len);
printf("Second Send data\n");
recv = recvfrom(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&server, &server_len);
if (recv)
{
printf("Second Recv\n");
closesocket(sock);
WSACleanup();
return 0;
}
}
return 1;
}
BOOL SetSocketTimeout(int &s, int nTime, BOOL bRecv)
{
int ret = ::setsockopt(s, SOL_SOCKET,
bRecv ? SO_RCVTIMEO : SO_SNDTIMEO, (char*)&nTime, sizeof(nTime));
return ret != SOCKET_ERROR;
}
Is it correct ?
I have test and can't get the server cvars.
__________________