1. Write a c program too shutdown
window operating system in TURBO C.
void main(void)
{
system("shutdown -s");
}
// Program to demonstrate inheritance
class name-of-derived-class : access-specifier name-of-base-class
{
//body of derived class;
};
1
|
#include<stdio.h>
|
|
2
|
#include<sys/socket.h>
|
|
3
|
||
4
|
int main(int argc , char *argv[])
|
|
5
|
{
|
|
6
|
int socket_desc;
|
|
7
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
8
|
||
9
|
if (socket_desc == -1)
|
||
10
|
{
|
||
11
|
printf("Could not
create socket");
|
|
12
|
}
|
|
13
|
||
14
|
return 0;
|
|
15
|
}
|
1
|
struct sockaddr_in
server;
|
1
|
// IPv4 AF_INET sockets:
|
|
2
|
struct sockaddr_in
{
|
|
3
|
short
sin_family; // e.g. AF_INET, AF_INET6
|
|
4
|
unsigned short
sin_port; // e.g. htons(3490)
|
|
5
|
struct in_addr sin_addr; // see struct
in_addr, below
|
|
6
|
char
sin_zero[8]; // zero this if you want to
|
|
7
|
};
|
|
8
|
||
9
|
struct in_addr {
|
||
10
|
unsigned long s_addr; // load
with inet_pton()
|
||
11
|
};
|
|
12
|
||
13
|
struct sockaddr
{
|
|
14
|
unsigned short
sa_family; // address family, AF_xxx
|
|
15
|
char
sa_data[14]; // 14 bytes of protocol address
|
|
16
|
};
|
|
1
|
server.sin_addr.s_addr = inet_addr("74.125.235.20");
|
1
|
#include<stdio.h>
|
|
2
|
#include<sys/socket.h>
|
|
3
|
#include<arpa/inet.h> //inet_addr
|
|
4
|
||
5
|
int main(int argc , char *argv[])
|
|
6
|
{
|
|
7
|
int socket_desc;
|
|
8
|
struct sockaddr_in server;
|
|
9
|
|||
10
|
//Create socket
|
||
11
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
12
|
if (socket_desc == -1)
|
|
13
|
{
|
|
14
|
printf("Could not
create socket");
|
|
15
|
}
|
|
16
|
||
17
|
server.sin_addr.s_addr =
inet_addr("74.125.235.20");
|
|
18
|
server.sin_family = AF_INET;
|
|
19
|
server.sin_port = htons( 80 );
|
|
20
|
||
21
|
//Connect to remote server
|
|
22
|
if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
|
|
23
|
{
|
|
24
|
puts("connect
error");
|
|
25
|
return 1;
|
|
26
|
}
|
|
27
|
||
28
|
puts("Connected");
|
|
29
|
return 0;
|
|
30
|
}
|
|
1
|
#include<stdio.h>
|
|
2
|
#include<string.h> //strlen
|
|
3
|
#include<sys/socket.h>
|
|
4
|
#include<arpa/inet.h> //inet_addr
|
|
5
|
||
6
|
int main(int argc , char *argv[])
|
|
7
|
{
|
|
8
|
int socket_desc;
|
|
9
|
struct sockaddr_in server;
|
||
10
|
char *message;
|
||
11
|
||
12
|
//Create socket
|
|
13
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
14
|
if (socket_desc == -1)
|
|
15
|
{
|
|
16
|
printf("Could not
create socket");
|
|
17
|
}
|
|
18
|
||
19
|
server.sin_addr.s_addr =
inet_addr("74.125.235.20");
|
|
20
|
server.sin_family = AF_INET;
|
|
21
|
server.sin_port = htons( 80 );
|
|
22
|
||
23
|
//Connect to remote server
|
|
24
|
if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
|
|
25
|
{
|
|
26
|
puts("connect
error");
|
|
27
|
return 1;
|
|
28
|
}
|
|
29
|
||
30
|
puts("Connected\n");
|
|
31
|
||
32
|
//Send some data
|
|
33
|
message = "GET / HTTP/1.1\r\n\r\n";
|
|
34
|
if( send(socket_desc , message ,
strlen(message) , 0) < 0)
|
|
35
|
{
|
|
36
|
puts("Send
failed");
|
|
37
|
return 1;
|
|
38
|
}
|
|
39
|
puts("Data Send\n");
|
|
40
|
||
41
|
return 0;
|
|
42
|
}
|
|
1
|
#include<stdio.h>
|
|
2
|
#include<string.h> //strlen
|
|
3
|
#include<sys/socket.h>
|
|
4
|
#include<arpa/inet.h> //inet_addr
|
|
5
|
||
6
|
int main(int argc , char *argv[])
|
|
7
|
{
|
|
8
|
int socket_desc;
|
|
9
|
struct sockaddr_in server;
|
||
10
|
char *message , server_reply[2000];
|
||
11
|
||
12
|
//Create socket
|
|
13
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
14
|
if (socket_desc == -1)
|
|
15
|
{
|
|
16
|
printf("Could not
create socket");
|
|
17
|
}
|
|
18
|
||
19
|
server.sin_addr.s_addr =
inet_addr("74.125.235.20");
|
|
20
|
server.sin_family = AF_INET;
|
|
21
|
server.sin_port = htons( 80 );
|
|
22
|
||
23
|
//Connect to remote server
|
|
24
|
if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
|
|
25
|
{
|
|
26
|
puts("connect
error");
|
|
27
|
return 1;
|
|
28
|
}
|
|
29
|
||
30
|
puts("Connected\n");
|
|
31
|
||
32
|
//Send some data
|
|
33
|
message = "GET / HTTP/1.1\r\n\r\n";
|
|
34
|
if( send(socket_desc , message ,
strlen(message) , 0) < 0)
|
|
35
|
{
|
|
36
|
puts("Send failed");
|
|
37
|
return 1;
|
|
38
|
}
|
|
39
|
puts("Data Send\n");
|
|
40
|
||
41
|
//Receive a reply from the server
|
|
42
|
if( recv(socket_desc, server_reply , 2000 , 0)
< 0)
|
|
43
|
{
|
|
44
|
puts("recv
failed");
|
|
45
|
}
|
|
46
|
puts("Reply received\n");
|
|
47
|
puts(server_reply);
|
|
48
|
||
49
|
return 0;
|
|
50
|
}
|
|
1
|
read(socket_desc, server_reply , 2000);
|
1
|
close(socket_desc);
|
1
|
/* Description of data base entry for a single host. */
|
|
2
|
struct hostent
|
|
3
|
{
|
|
4
|
char *h_name;
/* Official name of host. */
|
|
5
|
char **h_aliases;
/* Alias list. */
|
|
6
|
int h_addrtype;
/* Host address type. */
|
|
7
|
int h_length;
/* Length of address. */
|
|
8
|
char **h_addr_list;
/* List of addresses from name server. */
|
|
9
|
};
|
1
|
#include<stdio.h> //printf
|
|
2
|
#include<string.h> //strcpy
|
|
3
|
#include<sys/socket.h>
|
|
4
|
#include<netdb.h> //hostent
|
|
5
|
#include<arpa/inet.h>
|
|
6
|
||
7
|
int main(int argc , char *argv[])
|
|
8
|
{
|
|
9
|
char *hostname = "www.google.com";
|
||
10
|
char ip[100];
|
||
11
|
struct hostent *he;
|
|
12
|
struct in_addr **addr_list;
|
|
13
|
int i;
|
|
14
|
||
15
|
if ( (he = gethostbyname( hostname ) ) == NULL)
|
|
16
|
{
|
|
17
|
//gethostbyname failed
|
|
18
|
herror("gethostbyname");
|
|
19
|
return 1;
|
|
20
|
}
|
|
21
|
||
22
|
//Cast the h_addr_list to in_addr , since
h_addr_list also has the ip address in long format only
|
|
23
|
addr_list = (struct in_addr **) he->h_addr_list;
|
|
24
|
||
25
|
for(i = 0; addr_list[i] != NULL; i++)
|
|
26
|
{
|
|
27
|
//Return the first
one;
|
|
28
|
strcpy(ip ,
inet_ntoa(*addr_list[i]) );
|
|
29
|
}
|
|
30
|
||
31
|
printf("%s resolved to : %s" , hostname , ip);
|
|
32
|
return 0;
|
|
33
|
}
|
1
|
#include<stdio.h>
|
|
2
|
#include<sys/socket.h>
|
|
3
|
#include<arpa/inet.h> //inet_addr
|
|
4
|
||
5
|
int main(int argc , char *argv[])
|
|
6
|
{
|
|
7
|
int socket_desc;
|
|
8
|
struct sockaddr_in server;
|
|
9
|
|||
10
|
//Create socket
|
||
11
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
12
|
if (socket_desc == -1)
|
|
13
|
{
|
|
14
|
printf("Could not
create socket");
|
|
15
|
}
|
|
16
|
||
17
|
//Prepare the sockaddr_in structure
|
|
18
|
server.sin_family = AF_INET;
|
|
19
|
server.sin_addr.s_addr = INADDR_ANY;
|
|
20
|
server.sin_port = htons( 8888 );
|
|
21
|
||
22
|
//Bind
|
|
23
|
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server))
< 0)
|
|
24
|
{
|
|
25
|
puts("bind
failed");
|
|
26
|
}
|
|
27
|
puts("bind done");
|
|
28
|
||
29
|
return 0;
|
|
30
|
}
|
|
1
|
//Listen
|
|
2
|
listen(socket_desc , 3);
|
|
1
|
#include<stdio.h>
|
|
2
|
#include<sys/socket.h>
|
|
3
|
#include<arpa/inet.h> //inet_addr
|
|
4
|
||
5
|
int main(int argc , char *argv[])
|
|
6
|
{
|
|
7
|
int socket_desc , new_socket , c;
|
|
8
|
struct sockaddr_in server , client;
|
|
9
|
|||
10
|
//Create socket
|
||
11
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
12
|
if (socket_desc == -1)
|
|
13
|
{
|
|
14
|
printf("Could not
create socket");
|
|
15
|
}
|
|
16
|
||
17
|
//Prepare the sockaddr_in structure
|
|
18
|
server.sin_family = AF_INET;
|
|
19
|
server.sin_addr.s_addr = INADDR_ANY;
|
|
20
|
server.sin_port = htons( 8888 );
|
|
21
|
||
22
|
//Bind
|
|
23
|
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server))
< 0)
|
|
24
|
{
|
|
25
|
puts("bind
failed");
|
|
26
|
}
|
|
27
|
puts("bind done");
|
|
28
|
||
29
|
//Listen
|
|
30
|
listen(socket_desc , 3);
|
|
31
|
||
32
|
//Accept and incoming connection
|
|
33
|
puts("Waiting for incoming
connections...");
|
|
34
|
c = sizeof(struct sockaddr_in);
|
|
35
|
new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
|
36
|
if (new_socket<0)
|
|
37
|
{
|
|
38
|
perror("accept
failed");
|
|
39
|
}
|
|
40
|
||
41
|
puts("Connection accepted");
|
|
42
|
||
43
|
return 0;
|
|
44
|
}
|
|
1
|
char *client_ip
= inet_ntoa(client.sin_addr);
|
|
2
|
int client_port
= ntohs(client.sin_port);
|
|
1
|
#include<stdio.h>
|
|
2
|
#include<string.h> //strlen
|
|
3
|
#include<sys/socket.h>
|
|
4
|
#include<arpa/inet.h> //inet_addr
|
|
5
|
#include<unistd.h> //write
|
|
6
|
||
7
|
int main(int argc , char *argv[])
|
|
8
|
{
|
|
9
|
int socket_desc , new_socket , c;
|
||
10
|
struct sockaddr_in server , client;
|
||
11
|
char *message;
|
|
12
|
||
13
|
//Create socket
|
|
14
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
15
|
if (socket_desc == -1)
|
|
16
|
{
|
|
17
|
printf("Could not
create socket");
|
|
18
|
}
|
|
19
|
||
20
|
//Prepare the sockaddr_in structure
|
|
21
|
server.sin_family = AF_INET;
|
|
22
|
server.sin_addr.s_addr = INADDR_ANY;
|
|
23
|
server.sin_port = htons( 8888 );
|
|
24
|
||
25
|
//Bind
|
|
26
|
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server))
< 0)
|
|
27
|
{
|
|
28
|
puts("bind
failed");
|
|
29
|
return 1;
|
|
30
|
}
|
|
31
|
puts("bind done");
|
|
32
|
||
33
|
//Listen
|
|
34
|
listen(socket_desc , 3);
|
|
35
|
||
36
|
//Accept and incoming connection
|
|
37
|
puts("Waiting for incoming
connections...");
|
|
38
|
c = sizeof(struct sockaddr_in);
|
|
39
|
new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
|
40
|
if (new_socket<0)
|
|
41
|
{
|
|
42
|
perror("accept
failed");
|
|
43
|
return 1;
|
|
44
|
}
|
|
45
|
||
46
|
puts("Connection accepted");
|
|
47
|
||
48
|
//Reply to the client
|
|
49
|
message = "Hello Client , I have received
your connection. But I have to go now, bye\n";
|
|
50
|
write(new_socket , message , strlen(message));
|
|
51
|
||
52
|
return 0;
|
|
53
|
}
|
1
|
#include<stdio.h>
|
|
2
|
#include<string.h> //strlen
|
|
3
|
#include<sys/socket.h>
|
|
4
|
#include<arpa/inet.h> //inet_addr
|
|
5
|
#include<unistd.h> //write
|
|
6
|
||
7
|
int main(int argc , char *argv[])
|
|
8
|
{
|
|
9
|
int socket_desc , new_socket , c;
|
||
10
|
struct sockaddr_in server , client;
|
||
11
|
char *message;
|
|
12
|
||
13
|
//Create socket
|
|
14
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
15
|
if (socket_desc == -1)
|
|
16
|
{
|
|
17
|
printf("Could not
create socket");
|
|
18
|
}
|
|
19
|
||
20
|
//Prepare the sockaddr_in structure
|
|
21
|
server.sin_family = AF_INET;
|
|
22
|
server.sin_addr.s_addr = INADDR_ANY;
|
|
23
|
server.sin_port = htons( 8888 );
|
|
24
|
||
25
|
//Bind
|
|
26
|
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server))
< 0)
|
|
27
|
{
|
|
28
|
puts("bind
failed");
|
|
29
|
return 1;
|
|
30
|
}
|
|
31
|
puts("bind done");
|
|
32
|
||
33
|
//Listen
|
|
34
|
listen(socket_desc , 3);
|
|
35
|
||
36
|
//Accept and incoming connection
|
|
37
|
puts("Waiting for incoming
connections...");
|
|
38
|
c = sizeof(struct sockaddr_in);
|
|
39
|
while( (new_socket = accept(socket_desc,
(struct sockaddr
*)&client, (socklen_t*)&c)) )
|
|
40
|
{
|
|
41
|
puts("Connection
accepted");
|
|
42
|
||
43
|
//Reply to the client
|
|
44
|
message = "Hello
Client , I have received your connection. But I have to go now, bye\n";
|
|
45
|
write(new_socket ,
message , strlen(message));
|
|
46
|
}
|
|
47
|
||
48
|
if (new_socket<0)
|
|
49
|
{
|
|
50
|
perror("accept
failed");
|
|
51
|
return 1;
|
|
52
|
}
|
|
53
|
||
54
|
return 0;
|
|
55
|
}
|
1
|
$ telnet localhost 8888
|
|
2
|
Trying 127.0.0.1...
|
|
3
|
Connected to localhost.
|
|
4
|
Escape character is '^]'.
|
|
5
|
Hello Client , I have received your connection. But I have to go now,
bye
|
1
|
#include<stdio.h>
|
|
2
|
#include<string.h> //strlen
|
|
3
|
#include<stdlib.h> //strlen
|
|
4
|
#include<sys/socket.h>
|
|
5
|
#include<arpa/inet.h> //inet_addr
|
|
6
|
#include<unistd.h> //write
|
|
7
|
||
8
|
#include<pthread.h> //for threading , link with lpthread
|
|
9
|
|||
10
|
void *connection_handler(void *);
|
||
11
|
||
12
|
int main(int argc , char *argv[])
|
|
13
|
{
|
|
14
|
int socket_desc , new_socket , c , *new_sock;
|
|
15
|
struct sockaddr_in server , client;
|
|
16
|
char *message;
|
|
17
|
||
18
|
//Create socket
|
|
19
|
socket_desc = socket(AF_INET , SOCK_STREAM ,
0);
|
|
20
|
if (socket_desc == -1)
|
|
21
|
{
|
|
22
|
printf("Could not
create socket");
|
|
23
|
}
|
|
24
|
||
25
|
//Prepare the sockaddr_in structure
|
|
26
|
server.sin_family = AF_INET;
|
|
27
|
server.sin_addr.s_addr = INADDR_ANY;
|
|
28
|
server.sin_port = htons( 8888 );
|
|
29
|
||
30
|
//Bind
|
|
31
|
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server))
< 0)
|
|
32
|
{
|
|
33
|
puts("bind
failed");
|
|
34
|
return 1;
|
|
35
|
}
|
|
36
|
puts("bind done");
|
|
37
|
||
38
|
//Listen
|
|
39
|
listen(socket_desc , 3);
|
|
40
|
||
41
|
//Accept and incoming connection
|
|
42
|
puts("Waiting for incoming
connections...");
|
|
43
|
c = sizeof(struct sockaddr_in);
|
|
44
|
while( (new_socket = accept(socket_desc,
(struct sockaddr
*)&client, (socklen_t*)&c)) )
|
|
45
|
{
|
|
46
|
puts("Connection
accepted");
|
|
47
|
||
48
|
//Reply to the client
|
|
49
|
message = "Hello
Client , I have received your connection. And now I will assign a handler for
you\n";
|
|
50
|
write(new_socket ,
message , strlen(message));
|
|
51
|
||
52
|
pthread_t
sniffer_thread;
|
|
53
|
new_sock = malloc(1);
|
|
54
|
*new_sock =
new_socket;
|
|
55
|
||
56
|
if( pthread_create(
&sniffer_thread , NULL , connection_handler , (void*) new_sock)
< 0)
|
|
57
|
{
|
|
58
|
perror("could
not create thread");
|
|
59
|
return 1;
|
|
60
|
}
|
|
61
|
||
62
|
//Now join the thread
, so that we dont terminate before the thread
|
|
63
|
//pthread_join(
sniffer_thread , NULL);
|
|
64
|
puts("Handler
assigned");
|
|
65
|
}
|
|
66
|
||
67
|
if (new_socket<0)
|
|
68
|
{
|
|
69
|
perror("accept
failed");
|
|
70
|
return 1;
|
|
71
|
}
|
|
72
|
||
73
|
return 0;
|
|
74
|
}
|
|
75
|
||
76
|
/*
|
|
77
|
* This will handle connection for each client
|
|
78
|
* */
|
|
79
|
void *connection_handler(void *socket_desc)
|
|
80
|
{
|
|
81
|
//Get the socket descriptor
|
|
82
|
int sock = *(int*)socket_desc;
|
|
83
|
||
84
|
char *message;
|
|
85
|
||
86
|
//Send some messages to the client
|
|
87
|
message = "Greetings! I am your
connection handler\n";
|
|
88
|
write(sock , message , strlen(message));
|
|
89
|
||
90
|
message = "Its my duty to communicate
with you";
|
|
91
|
write(sock , message , strlen(message));
|
|
92
|
||
93
|
//Free the socket pointer
|
|
94
|
free(socket_desc);
|
|
95
|
||
96
|
return 0;
|
|
97
|
}
|
1
|
/*
|
|
2
|
* This will handle connection for each client
|
|
3
|
* */
|
|
4
|
void *connection_handler(void *socket_desc)
|
|
5
|
{
|
|
6
|
//Get the socket descriptor
|
|
7
|
int sock = *(int*)socket_desc;
|
|
8
|
int read_size;
|
|
9
|
char *message , client_message[2000];
|
||
10
|
|||
11
|
//Send some messages to the client
|
|
12
|
message = "Greetings! I am your
connection handler\n";
|
|
13
|
write(sock , message , strlen(message));
|
|
14
|
||
15
|
message = "Now type something and i shall
repeat what you type \n";
|
|
16
|
write(sock , message , strlen(message));
|
|
17
|
||
18
|
//Receive a message from client
|
|
19
|
while( (read_size = recv(sock , client_message
, 2000 , 0)) > 0 )
|
|
20
|
{
|
|
21
|
//Send the message
back to client
|
|
22
|
write(sock ,
client_message , strlen(client_message));
|
|
23
|
}
|
|
24
|
||
25
|
if(read_size == 0)
|
|
26
|
{
|
|
27
|
puts("Client
disconnected");
|
|
28
|
fflush(stdout);
|
|
29
|
}
|
|
30
|
else if(read_size == -1)
|
|
31
|
{
|
|
32
|
perror("recv
failed");
|
|
33
|
}
|
|
34
|
||
35
|
//Free the socket pointer
|
|
36
|
free(socket_desc);
|
|
37
|
||
38
|
return 0;
|
|
39
|
}
|