| 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 } |