Professional Documents
Culture Documents
def DecodeProcessing(aarr):
del aarr[0]
temp=(reverseArray(aarr))
return temp
def reverseArray(aarr):
temp=['']*len(aarr)
for i in range(len(aarr)):
temp[i]=aarr[-(i+1)]
return temp
def getParity( n ):
parity = 0
while n:
parity = ~parity
n = n & (n - 1)
return parity
def intToBinary(var):
return (bin(var).split("0b")[1])
def binToInteger(var):
return (int(var,2))
def listToString(aarr):
string = ""
for element in aarr:
string += element
return string
def arrRedundantPosition(r):
arrRedundantPos=[]
for i in range(r):
arrRedundantPos.append(2**i-1)
return arrRedundantPos
def Hamming(message):
message=intToBinary(message)
print("Message in binary = ",message)
m=len(message)
r=calcRedundantBits(m)
print("Number of redundant bits = ",r)
n=m+r
aarr=["0"]*n
arrRedundantPos=arrRedundantPosition(r)
count=0
for i in range(n):
if i not in arrRedundantPos:
count= count+1
aarr[i]=message[-count ]
aarr.insert(0,'START')
for i in range(len(arrRedundantPos)):
arrRedundantPos[i] = arrRedundantPos[i]+1
for i in arrRedundantPos:
aarr[i]=getParitybit(aarr,i)
for i in range(len(aarr)-1):
aarr[i]=aarr[i+1]
aarr.pop(-1)
AArr=reverseArray(aarr)
print("The Hamming Code encoded message =",listToString(AArr))
def checkArrayRedundantBits(aarr):
n=len(aarr)
aarr=[]
for i in range(n):
if 2**i < n:
aarr.append(2**i)
return aarr
#Encoding part
n=int(input("Enter the number in decimal : "))
Hamming(n)
#Decoding part
aarr=['']*(len(n))
for i in range(len(n)):
aarr[i]=n[i]
aarr=reverseArray(aarr)
dArr=checkArrayRedundantBits(aarr)
aarr.insert(0,'START')
ErrorPos=[]
for i in dArr:
ErrorPos.append(getParitybit(aarr, i))
if binToInteger(listToString(reverseArray(ErrorPos)))==0:
print("No Error Found")
aarr=DecodeProcessing(aarr)
else:
errordet=binToInteger(listToString(reverseArray(ErrorPos)))
print("Error Found at",errordet, "position from the left")
aarr=DecodeProcessing(aarr)
if (aarr[-(errordet)]=='1'):
aarr[-errordet]='0'
else:
aarr[-errordet]='1'
print("The Corrected Encoded Message =",listToString(aarr))
cArr=[]
for i in range(len(dArr)):
dArr[i]=-dArr[i]
for i in range(len(aarr)):
if -(i+1) not in dArr:
cArr.append(aarr[-(i+1)])
cArr=reverseArray(cArr)
print("The Decoded Message =", listToString(cArr))
print("The Message Recieved =", binToInteger(listToString(cArr)))
client
import socket
import random
sock = socket.socket()
host = socket.gethostname()
ip = socket.gethostbyname(host)
port = 5001
sock.connect((host, port))
print("Enter first Integer")
num_1 = input()
sock.send(str(num_1).encode())
print("Enter Second Integer")
num_2 = input()
sock.send(str(num_2).encode())
print("Enter Third Integer")
num_3 = input()
sock.send(str(num_3).encode())
print("\nSent all the Three Integers to the Server")
server = sock.recv(1024).decode()
print("\nRecieved the Average of those three numbers from the Server")
print("\nThe Average of the numbers is : ", server)
sock.close()