Mercurial > public > hey
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 |
rev | line source |
---|---|
0 | 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 | 9 |
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 | 44 |
45 return 0; | |
46 } |