-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.c
More file actions
68 lines (56 loc) · 1.47 KB
/
server.c
File metadata and controls
68 lines (56 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
#define PORT 8134
//#define ADDR "127.0.0.1"
//#define ADDR "10.100.12.27"
#define ADDR "0.0.0.0"
int main(){
int serverId, clientId;
char buffer[1024];
struct sockaddr_in serverAddress;
struct sockaddr_storage serverStorage;
socklen_t address_size;
// Create socket
serverId = socket(PF_INET, SOCK_STREAM, 0);
// Set server address
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = PORT;
serverAddress.sin_addr.s_addr = inet_addr(ADDR);
memset(serverAddress.sin_zero, '\0', sizeof serverAddress.sin_zero);
// Bind server to address
bind(serverId, (struct sockaddr *) &serverAddress, sizeof(serverAddress));
// Start listening
if(listen(serverId, 5) == 0)
printf("Listening at %s:%d\n", ADDR, PORT);
else
printf("Error starting the server...\n");
fflush(stdout);
// Accept client request
address_size = sizeof serverStorage;
clientId = accept(serverId, (struct sockaddr *) &serverStorage, &address_size);
if(clientId<0)
printf("Error\n");
else
printf("Client connected successfully\n");
fflush(stdout);
while(1){
char c;
scanf("%c", &c);
fflush(stdin);
//Send message to client
if(c=='1')
strcpy(buffer, "1\n");
else
strcpy(buffer, "0\n");
send(clientId, buffer, 2, 0);
memset(buffer,0,strlen(buffer));
recv(clientId, buffer, 1024, 0);
printf("Client: %s\n", buffer);
fflush(stdout);
}
// Close the server
close(serverId);
return 0;
}