NETWORK PROGRAMMING-Assignment: 1.TCP Chat Server Implementation

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

NETWORK PROGRAMMING-Assignment

1.TCP chat server implementation


Tcps.c :- ( TCP Server Program ) Tcpc.c :- ( TCP Client Program )
#include<sys/socket.h> #include<sys/socket.h>
#include<stdio.h> #include<stdio.h>
#include<string.h> #include<string.h>
#include<netdb.h> #include<netdb.h>
#include<stdlib.h> #include<stdlib.h>

int main() { int main() {


char buf[100]; char buf[100];
int k; int k;
socklen_t len; int sock_desc;
int sock_desc, temp_sock_desc; struct sockaddr_in client;
struct sockaddr_in server, client; memset( & client, 0, sizeof(client));
memset( & server, 0, sizeof(server)); sock_desc = socket(AF_INET, SOCK_STREAM, 0);
memset( & client, 0, sizeof(client)); if (sock_desc == -1) {
sock_desc = socket(AF_INET, printf("Error in socket creation");
SOCK_STREAM, 0); exit(1);
if (sock_desc == -1) { }
printf("Error in socket creation"); client.sin_family = AF_INET;
exit(1); client.sin_addr.s_addr = INADDR_ANY;
} client.sin_port = 3002;
server.sin_family = AF_INET; k = connect(sock_desc, (struct sockaddr * ) &
server.sin_addr.s_addr = client, sizeof(client));
inet_addr("127.0.0.1"); if (k == -1) {
server.sin_port = 3002; printf("Error in connecting to server");
k = bind(sock_desc, (struct sockaddr exit(1);
* ) & server, sizeof(server)); }
if (k == -1) { while (1) {
printf("Error in binding"); printf("\nEnter data to be send to server: ");
exit(1); fgets(buf, 100, stdin);
} if (strncmp(buf, "end", 3) == 0) //Use "end" to end
k = listen(sock_desc, 20); communication with server
if (k == -1) { break;
printf("Error in listening"); k = send(sock_desc, buf, 100, 0);
exit(1); if (k == -1) {
} printf("Error in sending");
len = sizeof(client); //VERY exit(1);
IMPORTANT }
k = recv(sock_desc, buf, 100, 0);
temp_sock_desc = accept(sock_desc, if (k == -1) {
(struct sockaddr * ) & client, & printf("Error in receiving");
len); //VERY //IMPORTANT exit(1);
if (temp_sock_desc == -1) { }
printf("Error in temporary socket printf("Message got from server is : %s", buf);
creation"); }
exit(1); close(sock_desc);
} exit(0);
while (1) { return 0;
k = recv(temp_sock_desc, buf, 100, }
0);
if (k == -1) {
printf("Error in receiving");
exit(1);
}
printf("Message got from client
is : %s", buf);
printf("\nEnter data to be send to
client: ");
fgets(buf, 100, stdin);
if (strncmp(buf, "end", 3) == 0)
break;
k = send(temp_sock_desc, buf, 100,
0);
if (k == -1) {
printf("Error in sending");
exit(1);
}
}
close(temp_sock_desc);
exit(0);
return 0; OUTPUT:-
}

OUTPUT:-

2.UDP chat server implementation

Udps.c:- ( UDP Server Program ) Udpc.c:- ( UDP Client Program )


#include<stdio.h> #include<stdio.h>
#include<string.h> #include<string.h>
#include<sys/stat.h> #include<sys/stat.h>
#include<sys/types.h> #include<sys/types.h>
#include<sys/socket.h> #include<sys/socket.h>
#include<netinet/in.h> #include<netinet/in.h>
#include<arpa/inet.h> #include<arpa/inet.h>

main() { main() {
struct sockaddr_in client, server; struct sockaddr_in client, server;
int s, n; int s, n;
char b1[100], b2[100]; char b1[100], b2[100];
s = socket(AF_INET, SOCK_DGRAM, 0); s = socket(AF_INET, SOCK_DGRAM, 0);
server.sin_family = AF_INET; server.sin_family = AF_INET;
server.sin_port = 2000; server.sin_port = 2000;
server.sin_addr.s_addr = server.sin_addr.s_addr =
inet_addr("127.0.0.1"); inet_addr("127.0.0.1");
bind(s, (struct sockaddr * ) & server, printf("\nClient ready....\n");
sizeof(server)); n = sizeof(server);
printf("\nServer ready,waiting for while (1) {
client....\n"); printf("\nClient:");
n = sizeof(client); gets(b2);
while (1) { sendto(s, b2, sizeof(b2), 0, (struct
recvfrom(s, b1, sizeof(b1), 0, (struct sockaddr * ) & server, n);
sockaddr * ) & client, & n); if (strcmp(b2, "end") == 0)
if (!(strcmp(b1, "end"))) break;
break; recvfrom(s, b1, sizeof(b1), 0, NULL,
printf("\nClient:%s", b1); NULL);
printf("\nServer:"); printf("\nServer:%s", b1);
gets(b2); }
sendto(s, b2, sizeof(b2), 0, (struct
sockaddr * ) & client, n); }

OUTPUT:- OUTPUT:-

You might also like