fixed client and server (and added more)
This commit is contained in:
parent
4b575cf3b9
commit
68f3bf78de
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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() {
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user