src/network.c

changeset 113
5f58df30d422
parent 96
5faa21316c85
equal deleted inserted replaced
112:6220074cb760 113:5f58df30d422
172 } else { 172 } else {
173 return NETCODE_CONNLOST; 173 return NETCODE_CONNLOST;
174 } 174 }
175 } 175 }
176 176
177 uint8_t net_recieve_code_async(int socket) {
178 fd_set readfds;
179 FD_ZERO(&readfds);
180 FD_SET(socket, &readfds);
181 struct timeval timeout;
182 timeout.tv_sec = 0;
183 timeout.tv_usec = 50000;
184 int result = select(socket+1, &readfds, NULL, NULL, &timeout);
185 if (result == 0) return NETCODE_AGAIN;
186 if (result == -1) return NETCODE_ERROR;
187 uint8_t code;
188 if (recv(socket, &code, sizeof(code), 0) == sizeof(code)) {
189 return code;
190 } else {
191 return NETCODE_CONNLOST;
192 }
193 }
194
177 void net_recieve_data(int socket, void *data, size_t len) { 195 void net_recieve_data(int socket, void *data, size_t len) {
178 recv(socket, data, len, MSG_WAITALL); 196 recv(socket, data, len, MSG_WAITALL);
179 } 197 }

mercurial