netcode seems functional

This commit is contained in:
Nishi 2026-01-29 19:42:00 +09:00
commit 0ee72e3446
Signed by: nishi
GPG key ID: 27EF69B208EB9343
10 changed files with 116 additions and 89 deletions

View file

@ -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);
}