Hejsa. Jeg er igang med at kode et program i C++ som skal køres på min externe server. Jeg sender den en socket med værdien "1". Når den så modtager den, så vild en lave en switch() og værdi 1 starter en Counter-Strike: Source server. Og den starter, men problemet er så at når den er startet så holder programmet op med at svare på andre forespørgelser til at jeg har lukket min CS
server ned igen. Dette sker på Windows.
Her en del af min kode:
while(true)
{
char temp[512];
client=accept(server,(struct sockaddr*)&from,&fromlen);
sprintf(temp, "OK");
int ret;
char buffer[1024];
memset(buffer, 0, sizeof (buffer));
ret = recv(client, buffer, sizeof(buffer), 0);
buffer[ret] = 0;
int id = atoi(buffer);
send(client,temp,strlen(temp),0);
cout << "Connection from " << inet_ntoa(from.sin_addr) << "\r\n";
cout << "Requested data id: " << id << "\r\n";
switch(id) {
case 0:
return false;
break;
case 1:
cout << "Starting server #1";
system("D:/srcds/srcds.exe -game cstrike -console +map de_dust2");
break;
default:
cout << "Error #2";
return false;
break;
}
closesocket(client);
Den looper ikke efter jeg har kørt system(). Eller er der en anden og bedre metode at gøre det på end det jeg har gjort?
-mvh Magnus.