netcode seems functional
This commit is contained in:
parent
0e2ca4f931
commit
0ee72e3446
10 changed files with 116 additions and 89 deletions
|
|
@ -11,7 +11,7 @@ GSNetServer GSNetServerOpen(GSServer server, int port) {
|
|||
|
||||
net->engine = server->engine;
|
||||
|
||||
if((net->fd = GSNetBaseServer(port)) < 0) {
|
||||
if((net->sock = GSNetBaseServer(port)) < 0) {
|
||||
GSLog(server->engine, GSLogError, "Failed to initialize socket");
|
||||
GSNetServerClose(net);
|
||||
|
||||
|
|
@ -22,32 +22,32 @@ GSNetServer GSNetServerOpen(GSServer server, int port) {
|
|||
}
|
||||
|
||||
void GSNetServerStep(GSNetServer net) {
|
||||
int i;
|
||||
GSNetPacket pkt;
|
||||
int i;
|
||||
GSNetPacket pkt;
|
||||
GSNetAddress addr;
|
||||
|
||||
while(GSNetBaseHasData(net->fd)){
|
||||
while(GSNetBaseHasData(net->sock)) {
|
||||
GSNetState v;
|
||||
|
||||
memset(&v, 0, sizeof(v));
|
||||
v.engine = net->engine;
|
||||
|
||||
GSNetPacketRead(net->fd, &pkt, &addr);
|
||||
GSNetPacketRead(net->sock, &pkt, &addr);
|
||||
|
||||
i = hmgeti(net->client, addr);
|
||||
if(i != -1) v = net->client[i].value;
|
||||
|
||||
GSNetStateRead(&v, net->fd, &pkt, &addr);
|
||||
GSNetStateRead(&v, net->sock, &pkt, &addr);
|
||||
hmput(net->client, addr, v);
|
||||
}
|
||||
|
||||
for(i = 0; i < hmlen(net->client); i++){
|
||||
GSNetStateWrite(&net->client[i].value, net->fd, &net->client[i].key);
|
||||
for(i = 0; i < hmlen(net->client); i++) {
|
||||
GSNetStateWrite(&net->client[i].value, net->sock, &net->client[i].key);
|
||||
}
|
||||
}
|
||||
|
||||
void GSNetServerClose(GSNetServer net) {
|
||||
if(net->fd >= 0) GSNetBaseClose(net->fd);
|
||||
if(net->sock >= 0) GSNetBaseClose(net->sock);
|
||||
|
||||
free(net);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue