728 Assign 04
728 Assign 04
NAME-ROHIT KUMAR
REG.NO.- 728
ROLL NO.-CSE/21068
SUBJECT CODE- CSC611
EMAIL:- [email protected]
Server code:-
import socket
def sum_of_squares(n):
return sum([i**2 for i in range(1, n+1)])
def main():
host = '127.0.0.1'
port = 12345
while True:
conn, addr = server_socket.accept()
print("Connection from:", addr)
while True:
data = conn.recv(1024).decode()
if not data:
break
elif data.lower() == 'quit':
conn.send('Goodbye!'.encode())
conn.close()
break
else:
try:
n = int(data)
result = sum_of_squares(n)
conn.send(str(result).encode())
except ValueError:
conn.send("Invalid input. Please send an integer or 'Quit'
to exit.".encode())
server_socket.close()
if __name__ == "__main__":
main()
Client code:-
import socket
def main():
host = '127.0.0.1'
port = 12345
while True:
n = input("Enter a number (or 'Quit' to exit): ")
client_socket.send(n.encode())
if n.lower() == 'quit':
print(client_socket.recv(1024).decode())
break
else:
print("Sum of squares:", client_socket.recv(1024).decode())
client_socket.close()
if __name__ == "__main__":
main()
Output:-
Server code:-
import socket
def count_ones(data):
return data.count(b'1')
def main():
host = '127.0.0.1'
port = 12346 # Change the port number
while True:
conn, addr = server_socket.accept()
print("Connection from:", addr)
while True:
data = conn.recv(1024)
if not data:
break
elif data.lower() == b'quit':
conn.send(b'Goodbye!')
conn.close()
break
else:
ones_count = count_ones(data)
conn.send(str(ones_count).encode())
server_socket.close()
if __name__ == "__main__":
main()
Client code:-
import socket
def main():
host = '127.0.0.1'
port = 12346
while True:
data = input("Enter a set of binary values (or 'Quit' to exit): ")
if data.lower() == 'quit':
print(client_socket.recv(1024).decode())
break
else:
try:
int(data, 2)
except ValueError:
print("Invalid input. Please enter a set of binary values
(e.g., '101010').")
continue
client_socket.send(data.encode())
ones_count = client_socket.recv(1024).decode()
print("Number of 1s:", ones_count)
client_socket.close()
if __name__ == "__main__":
main()
Output:-
Server code:-
import socket
def evaluate_postfix(expression):
stack = []
operators = set(['+', '-', '*', '/'])
for token in expression.split():
if token.isdigit():
stack.append(int(token))
elif token in operators:
if len(stack) < 2:
return "Invalid expression"
else:
operand2 = stack.pop()
operand1 = stack.pop()
if token == '+':
result = operand1 + operand2
elif token == '-':
result = operand1 - operand2
elif token == '*':
result = operand1 * operand2
elif token == '/':
if operand2 == 0:
return "Division by zero error"
result = operand1 / operand2
stack.append(result)
else:
return "Invalid token: {}".format(token)
if len(stack) == 1:
return stack.pop()
else:
return "Invalid expression"
def handle_client_connection(client_socket):
while True:
data = client_socket.recv(1024).decode()
if not data:
break
elif data.lower() == 'quit':
client_socket.send(b'Goodbye!')
client_socket.close()
return
else:
result = evaluate_postfix(data)
client_socket.send(str(result).encode())
def main():
host = '127.0.0.1'
port = 12347
while True:
conn, addr = server_socket.accept()
print("Connection from:", addr)
handle_client_connection(conn)
server_socket.close()
if __name__ == "__main__":
main()
Client code:-
import socket
def main():
host = '127.0.0.1'
port = 12347
client_socket.close()
if __name__ == "__main__":
main()
Output:-