Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
14 views11 pages

Unix Network

The document contains code implementations for various network programming tasks in Unix, including an Echo client and server (both iterative and concurrent) and a daytime server and client. Each section provides server and client code snippets using sockets for communication over TCP. The document is structured into three main questions, each detailing the respective code and functionality.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views11 pages

Unix Network

The document contains code implementations for various network programming tasks in Unix, including an Echo client and server (both iterative and concurrent) and a daytime server and client. Each section provides server and client code snippets using sockets for communication over TCP. The document is structured into three main questions, each detailing the respective code and functionality.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Unix network

programming
Practical file
Name : pandav kumar
Roll.no : 2k22/cs/58
Subject : unix network
programming
Course : b.sc (Hons) cS
Exam roll.no: 22013570037
Q1.Implement ECP Echo client and TCP Echo server(Iterative).
Server Code :
#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 8080


#define BUFFER_SIZE 1024

Int main() {
Int server_fd, client_fd;
Struct sockaddr_in address;
Char buffer[BUFFER_SIZE] = {0};

Server_fd = socket(AF_INET, SOCK_STREAM, 0);


Address.sin_family = AF_INET;
Address.sin_addr.s_addr = INADDR_ANY;
Address.sin_port = htons(PORT);

Bind(server_fd, (struct sockaddr*)&address,


sizeof(address));
Listen(server_fd, 5);
While (true) {
Socklen_t addr_len = sizeof(address);
Client_fd = accept(server_fd, (struct sockaddr*)&address,
&addr_len);

Int valread;
While ((valread = read(client_fd, buffer, BUFFER_SIZE)) >
0) {
Buffer[valread] = ‘\0’;
Send(client_fd, buffer, valread, 0);
}

Close(client_fd);
}

Close(server_fd);
Return 0;
}

Client code :

#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 8080


#define BUFFER_SIZE 1024

Int main() {
Int sock;
Struct sockaddr_in server_address;
Char buffer[BUFFER_SIZE], message[BUFFER_SIZE];

Sock = socket(AF_INET, SOCK_STREAM, 0);


Server_address.sin_family = AF_INET;
Server_address.sin_port = htons(PORT);
Server_address.sin_addr.s_addr = inet_addr(“127.0.0.1”);

Connect(sock, (struct sockaddr*)&server_address,


sizeof(server_address));

While (true) {
Std::cin.getline(message, BUFFER_SIZE);
If (strcmp(message, “exit”) == 0) break;

Send(sock, message, strlen(message), 0);


Int valread = read(sock, buffer, BUFFER_SIZE);
Buffer[valread] = ‘\0’;
Std::cout << buffer << std::endl;
}

Close(sock);
Return 0;
}

Output

Q2.Implement TCP Echo client and TCP Echo server


(concurrent)
Server Code :
#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>
#include <pthread.h>

#define PORT 8080


#define BUFFER_SIZE 1024

Void* handle_client(void* client_socket) {


Int client_fd = *(int*)client_socket;
Char buffer[BUFFER_SIZE];
Int valread;
While ((valread = read(client_fd, buffer, BUFFER_SIZE)) > 0)
Send(client_fd, buffer, valread, 0);
Close(client_fd);
Return nullptr;
}

Int main() {
Int server_fd, client_fd;
Struct sockaddr_in address;
Server_fd = socket(AF_INET, SOCK_STREAM, 0);
Address.sin_family = AF_INET;
Address.sin_addr.s_addr = INADDR_ANY;
Address.sin_port = htons(PORT);

Bind(server_fd, (struct sockaddr*)&address,


sizeof(address));
Listen(server_fd, 5);

While (true) {
Socklen_t addr_len = sizeof(address);
Client_fd = accept(server_fd, (struct sockaddr*)&address,
&addr_len);
Pthread_t thread;
Pthread_create(&thread, nullptr, handle_client,
&client_fd);
Pthread_detach(thread);
}

Close(server_fd);
Return 0;
}
Client code :
#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 8080


#define BUFFER_SIZE 1024

Int main() {
Int sock;
Struct sockaddr_in server_address;
Char buffer[BUFFER_SIZE], message[BUFFER_SIZE];

Sock = socket(AF_INET, SOCK_STREAM, 0);


Server_address.sin_family = AF_INET;
Server_address.sin_port = htons(PORT);
Server_address.sin_addr.s_addr = inet_addr(“127.0.0.1”);

Connect(sock, (struct sockaddr*)&server_address,


sizeof(server_address));

While (true) {
Std::cin.getline(message, BUFFER_SIZE);
If (strcmp(message, “exit”) == 0) break;

Send(sock, message, strlen(message), 0);


Int valread = read(sock, buffer, BUFFER_SIZE);
Buffer[valread] = ‘\0’;
Std::cout << buffer << std::endl;
}

Close(sock);
Return 0;
}
Output

Q3 .Implement TCP daytime client and TCP daytime server


( iterative).
Server Code :
#include <iostream>
#include <ctime>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 8080

Int main() {
Int server_fd, client_fd;
Struct sockaddr_in address;
Server_fd = socket(AF_INET, SOCK_STREAM, 0);
Address.sin_family = AF_INET;
Address.sin_addr.s_addr = INADDR_ANY;
Address.sin_port = htons(PORT);

Bind(server_fd, (struct sockaddr*)&address,


sizeof(address));
Listen(server_fd, 5);

While (true) {
Socklen_t addr_len = sizeof(address);
Client_fd = accept(server_fd, (struct sockaddr*)&address,
&addr_len);

Time_t now = time(0);


Std::string daytime = ctime(&now);
Send(client_fd, daytime.c_str(), daytime.length(), 0);

Close(client_fd);
}

Close(server_fd);
Return 0;
}
Client code :
#include <iostream>
#include <unistd.h>
#include <arpa/inet.h>

#define PORT 8080


#define BUFFER_SIZE 1024

Int main() {
Int sock;
Struct sockaddr_in server_address;
Char buffer[BUFFER_SIZE];

Sock = socket(AF_INET, SOCK_STREAM, 0);


Server_address.sin_family = AF_INET;
Server_address.sin_port = htons(PORT);
Server_address.sin_addr.s_addr = inet_addr(“127.0.0.1”);

Connect(sock, (struct sockaddr*)&server_address,


sizeof(server_address));
Int valread = read(sock, buffer, BUFFER_SIZE);
Buffer[valread] = ‘\0’;
Std::cout << buffer << std::endl;

Close(sock);
Return 0;
}
Output

You might also like