annotate src/main.c @ 1:58952f1fb8da

minimal socket example
author Dennis <dennisconcepcionmartin@gmail.com>
date Mon, 17 Jul 2023 18:05:20 +0100
parents 5d2832cac043
children 052cf5cf100a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 #include <stdio.h>
1
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
2 #include <stdlib.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
3 #include <string.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
4 #include <sys/types.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
5 #include <sys/socket.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
6 #include <netinet/in.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
7 #include <arpa/inet.h>
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
8
0
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
10 int main() {
1
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
11 int socketfd = socket(AF_INET, SOCK_STREAM, 0);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
12
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
13 if (socketfd == -1) {
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
14 printf("Socket creation failed\n");
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
15 exit(1);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
16 }
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
17
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
18 struct sockaddr_in sin;
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
19 memset(&sin, 0, sizeof(sin));
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
20 sin.sin_family = AF_INET;
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
21 sin.sin_addr.s_addr = inet_addr("127.0.0.1");
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
22 sin.sin_port = htons(5050);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
23
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
24 if (bind(socketfd, (struct sockaddr*)&sin, sizeof(sin)) == -1) {
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
25 printf("Socket binding failed\n");
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
26 }
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
27
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
28 //if (connect(socketfd, (struct sockaddr*)&sin, sizeof(sin) == -1)) {
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
29 //printf("Socket connection failed\n");
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
30 //}
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
31
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
32 if (listen(socketfd, 10) == -1) {
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
33 printf("Listen failed\n");
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
34 }
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
35
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
36 char sendBuff[50] = "Hello world\n";
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
37
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
38 while (1) {
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
39 int connfd = accept(socketfd, (struct sockaddr*)NULL, NULL);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
40 send(connfd, sendBuff, sizeof(sendBuff), 0);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
41 shutdown(connfd, 2);
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
42 }
58952f1fb8da minimal socket example
Dennis <dennisconcepcionmartin@gmail.com>
parents: 0
diff changeset
43
0
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
44
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
45 return 0;
5d2832cac043 first commit
Dennis <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
46 }