#include <acknex.h>
#include "anet.h"
void start_server();
void start_client();
STRING* cl_sv="#10";
TEXT* some_txt = {
strings = 2;
string = "press c for client or s for server and then press enter!", cl_sv;
flags |= VISIBLE;
pos_x = 10;
pos_y = 10;
}
var some_number = 0;
PANEL* some_panel = {
pos_x = 10;
pos_y = 40;
digits(0,0,"Client Count: %.0f",*,1,some_number);
}
void main(){
enet_init();
inkey(cl_sv);
if(str_cmp(cl_sv,"s")){
start_server();
str_cpy((some_txt.pstring)[0],"Server");
}
else if(str_cmp(cl_sv,"c")){
start_client();
str_cpy((some_txt.pstring)[0],"Client Mode");
}
else{
printf("UH,oh... Decide if you are a Client or a Server, buddy.");
}
level_load("");
}
void start_server()
{
enet_init_server(2300,4,_str("")); //initializes the server with port 2300,
set(some_panel,VISIBLE);
str_cpy((some_txt.pstring)[1],"Running in server mode");
enet_set_event(1,_str("sv_client_connected"));
while(enet_get_connection() == 1)
{
enet_server_poll(); //...needs to be called every frame!
some_number = enet_connected_clients();
wait(1);
}
}
void start_client()
{
int nameset = 0;
STRING* name = player_name;
enet_init_client(_str("127.0.0.1"),2300,_str("")); //Initializes a client
wait(-1);
while(enet_get_connection() == 2) //as long as the client-server mode consists
{
enet_client_poll();
while(enet_get_clientid()==-1) wait(1);
str_cpy((some_txt.pstring)[1],"Connected to server");
wait(1);
if(!nameset) {enet_set_playername(name); nameset =1;}
}
}
void sv_client_connected(var sender, STRING* msg)
{
printf("A new client connected!");
}