W
Hi,
---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <winsock2.h>
#pragma argsused
#define TIMEOUT 4
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
void timeout(int s);
int main(int argc, char *argv[])
{
long rc;
int port, sock, i, len;
struct sockaddr_in addr;
struct hostent *host;
char str[1024];
char buf[16384];
char buf1[16384];
argv[1]= "xxx.xxx.xxx.xxx" ;
argv[2]= "27035" ;
argv[3]= "xxx";
argv[4]= "say bla";
/*if(argc < 5)
{
printf("Usage: moh-rcon <address> <port> <password> <commands>\n");
gets(buf);
return 1;
} */
rc= startWinsock();
if(rc)
{
printf("Fehler: startWinsock, fehler code: %d\n",rc);
gets(buf);
return 1;
}
sock = socket(AF_INET,SOCK_DGRAM,0);
if(sock < 0)
{
printf("Socket.%d\n",sock );
gets(buf);
return 1;
}
port = atoi(argv[2]);
host = gethostbyname(argv[1]);
if(host == NULL)
{
printf("gethostbyname.%d\n",argv[1] );
gets(buf);
return 1;
}
memset(&addr, 0, sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr = *((struct in_addr *)host->h_addr);
str[0] = 255;
str[1] = 255;
str[2] = 255;
str[3] = 255;
str[4] = 2;
str[5] = 0;
sprintf(str + 5, "rcon %s ", argv[3]);
for(i = 4; i < argc; i++)
{
strcat(str, "\"");
strcat(str, argv[i]);
strcat(str, "\" ");
}
i = strlen(str) - 1;
str[i] = 0;
str[i+1] = 0x0a;
if(sendto(sock, str, i + 2, 0, &addr,
sizeof(struct sockaddr_in)) == -1)
{
printf("sendto.%d\n",str );
gets(buf);
return 1;
}
len = recvfrom(sock, buf, sizeof(buf), 0, NULL, 0);
if(len < 0)
{
printf("resive.%d\n",str );
gets(buf);
return 1;
}
printf("resived.%d\n",buf );
gets(buf1);
if(len == 0)
{
printf("No response.\n");
gets(buf);
return 0;
}
if(len < 11)
{
printf("Bad response.\n");
gets(buf);
return 0;
}
buf[len] = 0;
printf("%s\n", buf + 11);
close(sock);
//gets(buf);
return 0;
}
void timeout(int s)
{
printf("No response.\n");
exit(0);
}
Das ist mein Code (mit Borland c++ Builder 6 geschreiben falls es interrsiert)
Ich bekmme nun folgede antwort
resived1227620
So mein Problem ist jetzt auf dem Server Passiert gar nichts und was soll ich mit dem Erhaltenen Anfangen??
mfg
wdsl