initial
This commit is contained in:
79
main.c
Normal file
79
main.c
Normal file
@@ -0,0 +1,79 @@
|
||||
#include <stdio.h>
|
||||
#include <winsock2.h>
|
||||
#include <pthread.h>
|
||||
#include "main.h"
|
||||
#include "data.h"
|
||||
|
||||
#define PORT 40000
|
||||
#define BUFFER_SIZE 1024
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
// load_file();
|
||||
|
||||
WSADATA WSAData;
|
||||
|
||||
SOCKET client;
|
||||
|
||||
SOCKADDR_IN serverAddr, clientAddr;
|
||||
|
||||
WSAStartup(MAKEWORD(2,0), &WSAData);
|
||||
SOCKET server = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
serverAddr.sin_addr.s_addr = INADDR_ANY;
|
||||
serverAddr.sin_family = AF_INET;
|
||||
serverAddr.sin_port = htons(PORT);
|
||||
|
||||
bind(server, (SOCKADDR *)&serverAddr, sizeof(serverAddr));
|
||||
listen(server, 0);
|
||||
|
||||
printf("Listening for incoming connections...\n");
|
||||
|
||||
char buffer[BUFFER_SIZE] = {0};
|
||||
int clientAddrSize = sizeof(clientAddr);
|
||||
int recieved;
|
||||
char_array_t *reply = char_array_create(1024);
|
||||
while((client = accept(server, (SOCKADDR *)&clientAddr, &clientAddrSize)) != INVALID_SOCKET)
|
||||
{
|
||||
printf(" Client connected!\n");
|
||||
while ((recieved = recv(client, buffer, sizeof(buffer), 0)) > 0) {
|
||||
printf(" Client says: |%.1024s|\n",buffer);
|
||||
char_array_append(reply, buffer, recieved);
|
||||
if (buffer[recieved] == '\0') {
|
||||
break;
|
||||
}
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
Sleep(10);
|
||||
}
|
||||
|
||||
printf(" Sending back...\n");
|
||||
|
||||
printf(" Sending back: |%d| \n", reply->size);
|
||||
send(client, reply->data,reply->size,0);
|
||||
char_array_wipe(reply);
|
||||
|
||||
closesocket(client);
|
||||
printf("Client disconnected.\n");
|
||||
}
|
||||
}
|
||||
|
||||
void echo(SOCKET client) {
|
||||
char buffer[BUFFER_SIZE] = {0};
|
||||
char_array_t *reply = char_array_create(BUFFER_SIZE);
|
||||
int bytesReceived;
|
||||
while ((bytesReceived = recv(client, buffer, sizeof(buffer), 0)) > 0) {
|
||||
printf(" Client says: |%.1024s|\n",buffer);
|
||||
char_array_append(reply, buffer, bytesReceived);
|
||||
if (buffer[bytesReceived] == '\0') {
|
||||
break;
|
||||
}
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
Sleep(10);
|
||||
}
|
||||
printf(" Sending back...\n");
|
||||
|
||||
printf(" Sending back: |%llu| \n", reply->size);
|
||||
send(client, reply->data,reply->size,0);
|
||||
closesocket(client);
|
||||
}
|
||||
Reference in New Issue
Block a user