fixed client and server (and added more)

This commit is contained in:
Arthur-Coppey 2021-08-22 01:01:57 +02:00
parent 4b575cf3b9
commit 68f3bf78de
3 changed files with 28 additions and 6 deletions

View File

@ -39,7 +39,7 @@ int main(int argc, char *argv[]) {
puts("payload sent"); puts("payload sent");
char response[2048]; char response[2048];
if (recv(sock, response, 2048, 0)) { if (recv(sock, response, 2048, 0) < 0) {
puts("receive failed"); puts("receive failed");
return 4; return 4;
} }

View File

@ -6,8 +6,11 @@
void tcpServer() { void tcpServer() {
int serverSocket, clientSocket; int serverSocket, clientSocket;
long read_size;
unsigned long addressLength; unsigned long addressLength;
struct sockaddr_in serverAddress, clientAddress; struct sockaddr_in serverAddress, clientAddress;
char quote[MESSAGE_STRING_LENGTH] = "";
char clientMessage[MESSAGE_STRING_LENGTH] = "";
serverAddress.sin_family = AF_INET; serverAddress.sin_family = AF_INET;
serverAddress.sin_addr.s_addr = INADDR_ANY; serverAddress.sin_addr.s_addr = INADDR_ANY;
@ -30,15 +33,30 @@ void tcpServer() {
puts("server listening"); puts("server listening");
addressLength = sizeof(struct sockaddr_in); addressLength = sizeof(struct sockaddr_in);
clientSocket = accept(serverSocket, (struct sockaddr *) &clientAddress, (socklen_t *) addressLength); while ((clientSocket = accept(serverSocket, (struct sockaddr *) &clientAddress, (socklen_t *) &addressLength)) >= 0) {
puts("client connected");
/*receive data*/
while ((read_size = recv(clientSocket, clientMessage, MESSAGE_STRING_LENGTH, 0))) {
if (read_size < 0) {
puts("receive failed");
} else {
printf("client says: %s\n", clientMessage);
/*send data*/
getRandomQuote(quote);
printf("responding: \"%s\"\n", quote);
write(clientSocket, quote, strlen(quote));
}
}
puts("client disconnected");
}
if (clientSocket < 0) { if (clientSocket < 0) {
puts("client connection failed"); puts("client connection failed");
exit(3); exit(3);
} }
puts("client connected");
write(clientSocket, "test", strlen("test"));
// TODO: listen and respond
} }
void udpServer() { void udpServer() {

View File

@ -12,6 +12,10 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "quote.h"
#define MESSAGE_STRING_LENGTH 2048
void tcpServer(); void tcpServer();
void udpServer(); void udpServer();