Nothing Special   »   [go: up one dir, main page]

CN Ex 7-12

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Program - 7:

//Sender7.java
import java.net.*;
import java.io.*;

public class Sender7


{
public static void main(String a[])throws Exception
{
ServerSocket ser=new ServerSocket(10);
Socket s=ser.accept();
DataInputStream in=new DataInputStream(System.in);
DataInputStream in1=new DataInputStream(s.getInputStream());
String sbuff[]=new String[8];
PrintStream p;
int sptr=0,sws=8,nf,ano,i;
String ch;
do
{
p=new PrintStream(s.getOutputStream());
System.out.print("Enter the no. of frames : ");
nf=Integer.parseInt(in.readLine());
p.println(nf);
if(nf<=sws-1)
{

System.out.println("Enter "+nf+" Messages to be send\n");


for(i=1;i<=nf;i++)
{
sbuff[sptr]=in.readLine();
p.println(sbuff[sptr]);
sptr=++sptr%8;
}
sws-=nf;
System.out.print("Acknowledgment received");
ano=Integer.parseInt(in1.readLine());
System.out.println(" for "+ano+" frames");
sws+=nf;
}
else
{
System.out.println("The no. of frames exceeds window size");
break;
}
System.out.print("\nDo you wants to send some more frames : ");
ch=in.readLine(); p.println(ch);
}
while(ch.equals("yes"));
s.close();
}
}
//Receiver7.java
import java.net.*;
import java.io.*;
class Receiver7
{
public static void main(String a[])throws Exception
{
Socket s=new Socket(InetAddress.getLocalHost(),10);
DataInputStream in=new DataInputStream(s.getInputStream());
PrintStream p=new PrintStream(s.getOutputStream());
int i=0,rptr=-1,nf,rws=8;
String rbuf[]=new String[8];
String ch; System.out.println();
do
{
nf=Integer.parseInt(in.readLine());
if(nf<=rws-1)
{
for(i=1;i<=nf;i++)
{
rptr=++rptr%8;
rbuf[rptr]=in.readLine();
System.out.println("The received Frame " +rptr+" is : "+rbuf[rptr]);
}
rws-=nf;
System.out.println("\nAcknowledgment sent\n");
p.println(rptr+1); rws+=nf; }
else
break;
ch=in.readLine();
}
while(ch.equals("yes"));
}
}

OUTPUT:
//Sender
Enter the no. of frames : 3
Enter 4 Messages to be send
a
b
c
Acknowledgment received for 4 frames
Do you wants to send some more frames : no

//Receiver
The received Frame 0 is : a
The received Frame 1 is : b
The received Frame 2 is : c

Acknowledgment sent
Program - 8:
//stopwaitsender.java
import java.io.*;
import java.net.*;
import java.util.Scanner;

class stopwaitsender {
public static void main(String args[]) throws Exception {
stopwaitsender sws = new stopwaitsender();
sws.run();
}
public void run() throws Exception {
Scanner sc=new Scanner(System.in);
System.out.println("Enter no of frames to be sent:");

int n=sc.nextInt();
Socket myskt=new Socket("localhost",9999);
PrintStream myps=new PrintStream(myskt.getOutputStream());

for(int i=0;i<=n;) {
if(i==n){+s
myps.println("exit");
break;
}
System.out.println("Frame no "+i+" is sent");

myps.println(i);
BufferedReader bf=new BufferedReader(new
InputStreamReader(myskt.getInputStream()));
String ack=bf.readLine();

if(ack!=null) {
System.out.println("Acknowledgement was Received from receiver");
i++;
Thread.sleep(4000);
}
else
myps.println(i);
}
}
}

//stopwaitreceiver.java
import java.io.*;
import java.net.*;

class stopwaitreceiver {
public static void main(String args[])throws Exception {
stopwaitreceiver swr = new stopwaitreceiver();
swr.run();
}
public void run() throws Exception {
String temp="any message",str="exit";

ServerSocket myss=new ServerSocket(9999);


Socket ss_accept=myss.accept();
BufferedReader ss_bf=new BufferedReader(new
InputStreamReader(ss_accept.getInputStream()));
PrintStream myps=new PrintStream(ss_accept.getOutputStream());

while(temp.compareTo(str)!=0) {
Thread.sleep(1000);
temp=ss_bf.readLine();

if(temp.compareTo(str)==0)
break;
System.out.println("Frame "+temp+" was received");
Thread.sleep(500);
myps.println("Received");
}
System.out.println("ALL FRAMES WERE RECEIVED SUCCESSFULLY");
}
}

OUTPUT:

//sender
Enter no of frames to be sent:
4
Frame no 0 is sent
Acknowledgement was Received from receiver
Frame no 1 is sent
Acknowledgement was Received from receiver
Frame no 2 is sent
Acknowledgement was Received from receiver
Frame no 3 is sent
Acknowledgement was Received from receiver

//receiver
Frame 0 was received
Frame 1 was received
Frame 2 was received
Frame 3 was received
ALL FRAMES WERE RECEIVED SUCCESSFULLY
Program - 9:
import ipaddress

ip = input("Enter ipv6 address :")


try:
ip = ipaddress.ip_address(ip)
if ip.version == 4:
print("You should enter an ipv6 address")
exit()
else:
net_mask = ipaddress.ip_address("ffff:ffff:ffff:ffff::")
host_mask = ipaddress.ip_address("::ffff:ffff:ffff:ffff")
print("Net id ==> ", ipaddress.ip_address(int(ip) & int(net_mask)))
print("Host id ==> ", ipaddress.ip_address(int(ip) & int(host_mask)))
except ValueError:
print("Invalid ip address")

OUTPUT:

Enter ipv6 address: 22bc:ff:21:0::abc:123


Net id ==> 22bc:ff:21::
Host id ==> 10.188.1.35

Enter ipv6 address: ff::ff


Net id ==> ff::
Host id ==> 0.0.0.255

Enter ipv6 address :192.168


Invalid ip address

Program - 10:
//server.py
import socket

host_name = socket.gethostname()
UDP_IP = socket.gethostbyname(host_name)
UDP_PORT = 8000

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while True:
data,addr = sock.recvfrom(1024)
print("received message: %s" % data.decode())

//client.py
import socket

host_name = socket.gethostname()
UDP_IP = socket.gethostbyname(host_name)
UDP_PORT = 8000
while True:
msg = input("Enter a message: ")
if msg == "$exit":
print("Program exited!")
exit()

MESSAGE = bytes(msg, 'utf-8')


sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
print("Sent a message to", "{}:{}".format(UDP_IP, UDP_PORT))

OUTPUT:

//client
Enter a message: Hello
Sent a message to 192.168.0.151:8000
Enter a message: Bye
Sent a message to 192.168.0.151:8000
Enter a message: $exit
Program exited!

//server
received message: Hello
received message: Bye

Program - 11:
import heapq

def dijkstra(graph, start):


distances = {vertex: float('infinity') for vertex in graph}
predecessors = {vertex: None for vertex in graph}
distances[start] = 0

priority_queue = [(0, start)]

while priority_queue:
current_distance, current_vertex = heapq.heappop(priority_queue)

if current_distance > distances[current_vertex]:


continue

for neighbor, weight in graph[current_vertex].items():


distance = current_distance + weight

if distance < distances[neighbor]:


distances[neighbor] = distance
predecessors[neighbor] = current_vertex
heapq.heappush(priority_queue, (distance, neighbor))

return distances, predecessors


graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 5},
'D': {'B': 5, 'C': 5}
}

start_vertex = 'A'
distances, predecessors = dijkstra(graph, start_vertex)

for vertex, distance in distances.items():


path = []
current = vertex
while current is not None:
path.insert(0, current)
current = predecessors[current]
print('Shortest distance from {} to {}: {}'.format(start_vertex, vertex, distance))
print('Shortest path: {}\n'.format(" -> ".join(path)))

OUTPUT:

Shortest distance from A to A: 0


Shortest path: A

Shortest distance from A to B: 1


Shortest path: A -> B

Shortest distance from A to C: 3


Shortest path: A -> B -> C

Shortest distance from A to D: 6


Shortest path: A -> B -> D

Program - 12:

import rsa

message = input("Enter a message to encrypt: ")


(pub_key, priv_key) = rsa.newkeys(2048)
message = message.encode('utf-8')
encrypted_message = rsa.encrypt(message, pub_key)

with open("encrypted.txt", "wb") as file:


file.write(encrypted_message)

decrypted_message = rsa.decrypt(encrypted_message, priv_key).decode('utf-8')


with open("decrypted.txt", "w") as file:
file.write(decrypted_message)

print("Encrypted message:", encrypted_message)


print("Decrypted message:", decrypted_message)
OUTPUT:

Enter a message to encrypt: Hello there


Encrypted message:
b'\x1a\xfa\xe1\xb6%\x8c\x98v1\x7f\xfbUY\xe6\xe3MV\x1fA\x88,h!j\\n~\x92B0$!y\xe2N[Ck?\xa4x\
xe2=\xa7\x04JG\xee\xa6\x19\xc5\xa4\x8d\x7f\x8b0\x9dq\xa4\xd2$7\xc4\x7f\xb8\x90\xc5\xc3\xc
1\r*0\x06F\'\xbcuh\xdf\x90\xc8\xcc\x8c&?\xdf2R]\x7f3\xc4\xfb\xf6\x8b\x91\xf9\x05&0\xc0\x1f\xe2
(E\xd2\x8b\xd2\xac\x02\xc8u\x0e\xbe*r\x11\xad\xae)<U;\xc9cP\x00Q\x0e\xe0w_\xb8E\x10\x1f:!*
\xb1c^\xc9\xc9<\x06\x97\x19u\x12V\x1e\xca\x17\xb8\xe9(t\xc1b\x8e\x81\xf3\x95\x01fV\xc7\xd6\
xac\xed\xb50\x1a\xb4\xa0o\x92\xa3\xa2\xc6m\x19JZW"\x1b>Lr\x06$\xe6\x0b\xac7\xd4p\xe3\xd
0G\x84\x8f\xf9\xcb\xc6i\xceF\x94?k\xae\x87u+)\x97R\xf69\x93pe\xb8\x7f\xbb\xb7d\xaa\xa1\xa2
K\x8c\x07\xc3\xdb;H\xa2\x97\xf54*\x05&:*\x17`\x86}vi\x93'
Decrypted message: Hello there

You might also like