added test client
This commit is contained in:
parent
c3418f2ec4
commit
a9da4251e2
@ -3,4 +3,5 @@ project(qotd C)
|
|||||||
|
|
||||||
set(CMAKE_C_STANDARD 99)
|
set(CMAKE_C_STANDARD 99)
|
||||||
|
|
||||||
add_executable(qotd main.c quote.c quote.h server.c server.h)
|
add_executable(server server/main.c server/quote.c server/quote.h server/server.c server/server.h)
|
||||||
|
add_executable(client client/main.c)
|
||||||
49
client/main.c
Normal file
49
client/main.c
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
//
|
||||||
|
// Created by k0rb4k on 22/04/2021.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
struct sockaddr_in server;
|
||||||
|
int sock;
|
||||||
|
|
||||||
|
server.sin_family = AF_INET;
|
||||||
|
server.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||||
|
server.sin_port = htons(17);
|
||||||
|
|
||||||
|
sock = socket(server.sin_family, SOCK_STREAM, IPPROTO_IP);
|
||||||
|
if (sock == -1) {
|
||||||
|
puts("socket not created");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (connect(sock, (const struct sockaddr *) &server, sizeof(server)) < 0) {
|
||||||
|
puts("connection failed");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *payload = "I dream of sushi";
|
||||||
|
if (send(sock, payload, strlen(payload), 0) < 0) {
|
||||||
|
puts("error while sending payload");
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
char response[2048];
|
||||||
|
if (recv(sock, response, 2048, 0)) {
|
||||||
|
puts("receive failed");
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
puts("server response :");
|
||||||
|
puts(response);
|
||||||
|
|
||||||
|
close(sock);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
10
main.c
10
main.c
@ -1,10 +0,0 @@
|
|||||||
#include "quote.h"
|
|
||||||
#include "server.h"
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
char quote[1024];
|
|
||||||
getRandomQuote(quote);
|
|
||||||
printf("%s\n", quote);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
23
server.c
23
server.c
@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by k0rb4k on 30/03/2021.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "server.h"
|
|
||||||
|
|
||||||
void tcpListen() {
|
|
||||||
int serverFd;
|
|
||||||
struct sockaddr_in address;
|
|
||||||
|
|
||||||
address.sin_family = AF_INET;
|
|
||||||
address.sin_addr.s_addr = INADDR_ANY;
|
|
||||||
address.sin_port = htons(17);
|
|
||||||
|
|
||||||
serverFd = socket(AF_INET, SOCK_STREAM, 0);
|
|
||||||
|
|
||||||
bind(serverFd, (const struct sockaddr *) &address, sizeof address);
|
|
||||||
// TODO: listen and respond
|
|
||||||
}
|
|
||||||
|
|
||||||
void udpListen() {
|
|
||||||
|
|
||||||
}
|
|
||||||
11
server/main.c
Normal file
11
server/main.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "quote.h"
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
// char quote[1024];
|
||||||
|
// getRandomQuote(quote);
|
||||||
|
// printf("%s\n", quote);
|
||||||
|
tcpServer();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
44
server/server.c
Normal file
44
server/server.c
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// Created by k0rb4k on 30/03/2021.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
void tcpServer() {
|
||||||
|
int serverSocket, clientSocket;
|
||||||
|
unsigned long addressLength;
|
||||||
|
struct sockaddr_in serverAddress, clientAddress;
|
||||||
|
|
||||||
|
serverAddress.sin_family = AF_INET;
|
||||||
|
serverAddress.sin_addr.s_addr = INADDR_ANY;
|
||||||
|
serverAddress.sin_port = htons(17);
|
||||||
|
|
||||||
|
serverSocket = socket(serverAddress.sin_family, SOCK_STREAM, IPPROTO_IP);
|
||||||
|
if (serverSocket == -1) {
|
||||||
|
puts("socket not created");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
puts("socket created");
|
||||||
|
|
||||||
|
if (bind(serverSocket, (const struct sockaddr *) &serverAddress, sizeof serverAddress) < 0) {
|
||||||
|
puts("bind failed");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
listen(serverSocket, 5);
|
||||||
|
|
||||||
|
addressLength = sizeof(struct sockaddr_in);
|
||||||
|
clientSocket = accept(serverSocket, (struct sockaddr *) &clientAddress, (socklen_t *) addressLength);
|
||||||
|
if (clientSocket < 0) {
|
||||||
|
puts("client connection failed");
|
||||||
|
exit(3);
|
||||||
|
}
|
||||||
|
puts("client connected");
|
||||||
|
|
||||||
|
write(clientSocket, "test", strlen("test"));
|
||||||
|
// TODO: listen and respond
|
||||||
|
}
|
||||||
|
|
||||||
|
void udpServer() {
|
||||||
|
|
||||||
|
}
|
||||||
@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
void tcpListen();
|
void tcpServer();
|
||||||
|
|
||||||
void udpListen();
|
void udpServer();
|
||||||
|
|
||||||
#endif //QOTD_SERVER_H
|
#endif //QOTD_SERVER_H
|
||||||
Loading…
Reference in New Issue
Block a user