-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NET: Mitschrifen 30.11.2020 #88
Conversation
Command resultsDetails:Run doctocchanged:
- /home/runner/work/dhge-pi19-sem3/dhge-pi19-sem3/NET/README.md
unchanged:
- /home/runner/work/dhge-pi19-sem3/dhge-pi19-sem3/DBS/README.md
- /home/runner/work/dhge-pi19-sem3/dhge-pi19-sem3/RES/README.md
- /home/runner/work/dhge-pi19-sem3/dhge-pi19-sem3/PRO/README.md
- /home/runner/work/dhge-pi19-sem3/dhge-pi19-sem3/SWE/README.md Changed filesChanged file:
|
Wollen wir hier eigentlich noch die Doku für die Übung mit reinnehmen? Wird in Anbetracht der Länge des Quelltextes ggf. unübersichtlich. |
@sthinbetween Für das Hauptdokument finde ich die Übungen eigentlich auch zu lang. Ich würde das ebenfalls eher als extra-file sehen, dazu sollten wir uns aber erst mal auf eine einheitliche Ordnerstruktur für alle Module festlegen. Momentan ist das mit den zusätzlichen Files etwas unstrukturiert 😅 Eventuell könnte man das Ganze auch als Spoiler machen#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define MAXPENDING 5
#define RECEIVEBUFFER 65535
void handleTCPClient(int clientSocket);
int main(int argc, char * argv[]){
int serverSocket;
int clientSocket;
struct sockaddr_in echoServerAddr;
struct sockaddr_in echoClientAddr;
unsigned short echoServerPort;
unsigned int clientLen;
if (argc != 2) {
fprintf(stderr, "Usage: % s < Server Port > \n", argv[0]);
exit(1);
}
echoServerPort = atoi(argv[1]);
if ((serverSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
perror("socket() failed");
exit(1);
}
memset( & echoServerAddr, 0, sizeof(echoServerAddr));
echoServerAddr.sin_family = AF_INET;
echoServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
echoServerAddr.sin_port = htons(echoServerPort);
if (bind(serverSocket, (struct sockaddr * ) &echoServerAddr, sizeof(echoServerAddr)) < 0) {
perror("bind() failed");
exit(1);
}
if (listen(serverSocket, MAXPENDING) < 0) {
perror("listen() failed.");
exit(1);
}
for (;;) {
clientLen = sizeof(echoClientAddr);
if ((clientSocket = accept(serverSocket, (struct sockaddr * ) &echoClientAddr, &clientLen)) < 0) {
perror("accept() failed.");
exit(1);
}
printf("Connection from client %s \n", inet_ntoa(echoClientAddr.sin_addr));
handleTCPClient(clientSocket);
}
}
void handleTCPClient(int clientSocket) {
char buf[RECEIVEBUFFER];
int receivedMessageSize;
if ((receivedMessageSize = recv(clientSocket, buf, RECEIVEBUFFER, 0)) < 0) {
fprintf(stderr,("recv() error\n"));
}
buf[receivedMessageSize] = '\0';
char *http = "HTTP/1.1 200 OK\r\n\r\n<html><title>TEST</title><body><i>Hello World!</i></body></html>";
send(clientSocket, http, strlen(http)+1, 0);
close(clientSocket);
} Dann hätte ich aber noch keinen Vorschlag, wie wir das Ganze in |
Ist vielleicht etwas sehr aufwendig, aber wäre es vielleicht möglich, dass es als Spoiler im Code steht, und von Pandoc dann in den Anhang geschoben wird 🤔 Oder man verlinkt einfach den extra file. |
@RvNovae Zu dem Thema müssen wir uns nochmal was überlegen -> siehe Issue #89 |
No description provided.