ready to test
This commit is contained in:
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -7,4 +7,5 @@
|
||||
<option name="pythonIntegrationState" value="YES" />
|
||||
</component>
|
||||
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
|
||||
<component name="WestSettings"><![CDATA[{}]]></component>
|
||||
</project>
|
||||
2
data.c
2
data.c
@@ -92,7 +92,7 @@ char *char_array_get_until_char(char_array_t *array, char c) {
|
||||
};
|
||||
|
||||
char *char_array_get_bytes(char_array_t *array, size_t length) {
|
||||
if (length < array->size) {
|
||||
if (length > array->size) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
13
server02.c
13
server02.c
@@ -32,11 +32,12 @@ void *handle_connection(void *args) {
|
||||
char_array_t *data = char_array_create(1024);
|
||||
price_array_t *prices = price_array_create(1024);
|
||||
while ((bytesReceived = recv(handleArgs->client, buffer, sizeof(buffer), 0)) > 0) {
|
||||
printf("Client sent {%d}: |%d| \n", handleArgs->connection, bytesReceived);
|
||||
printf("{%d} Client sent: |%d| \n", handleArgs->connection, bytesReceived);
|
||||
char_array_append(data, buffer, bytesReceived);
|
||||
query_or_insert_t *request;
|
||||
while ((request = fix_message(char_array_get_bytes(data, 9))) != NULL) {
|
||||
char *raw_request;
|
||||
while ((raw_request = char_array_get_bytes(data, 9)) != NULL) {
|
||||
//parse_request(handleArgs, request, data);
|
||||
query_or_insert_t *request = fix_message(raw_request);
|
||||
switch (request->insert.type) {
|
||||
case INSERT:
|
||||
printf("{%d} timestamp: %d, price: %d\n", handleArgs->connection, request->insert.timestamp, request->insert.price);
|
||||
@@ -48,13 +49,15 @@ void *handle_connection(void *args) {
|
||||
printf("{%d} Query min: %d, max: %d avg %d\n", handleArgs->connection, request->query.mintime, request->query.maxtime, average);
|
||||
int32_t response = htonl(average);
|
||||
send(handleArgs->client, (char*)&response, sizeof(response), 0);
|
||||
break;
|
||||
default:
|
||||
closesocket(handleArgs->client);
|
||||
free(handleArgs);
|
||||
pthread_exit(NULL);
|
||||
exit(3);
|
||||
}
|
||||
// free(request);
|
||||
free(request);
|
||||
free(raw_request);
|
||||
}
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
}
|
||||
@@ -64,6 +67,8 @@ void *handle_connection(void *args) {
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
query_or_insert_t *fix_message(char *message) {
|
||||
if (message == NULL) {
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user