Knjiga - mrežno i paralelno programiranje
1. Mrežno programiranje 3
Zadatak
Na klijentskom računalu upisuje se broj, a poslužitelj šalje poruku je li zbroj znamenaka poslanog broja prost.
Treba dopuniti poslužiteljsku aplikaciju i provjeriti radi li te predati na linku mrezno3
U naredbenom retku ili drugom računalu pokrenite poslužiteljsku aplikaciju, a standardno iz Pythona pokrenite klijentsku aplikaciju.
##poslužitelj
from socket import *
class Posluzitelj:
def __init__(self, host, port):
self.s = socket()
self.h = host
self.p = port
self.s.bind((self.h, self.p))
self.s.listen(5)
print('Čekam klijenta...')
c, a = self.s.accept()
print('Spojio se',a)
self.komuniciraj(c)
c.close()
def prost(self,x):
for i xxxxxxxxxx
if xxxxxxxxxx
return False
return True
def suma(self,x):
xxxxx
while x > 0:
xxxxxxxxxx
xxxxxxxxxx
return s
def komuniciraj(self,c):
while True:
x = int(c.recv(1024).decode('utf-8'))
if x < 2:
c.send('Kraj'.encode('utf-8'))
return
rezultat = str(self.prost(self.suma(x)))
c.send(rezultat.encode('utf-8'))
Posluzitelj('DESKTOP-59PTT3J',10000)
##klijent
from socket import *
class Klijent:
def __init__(self, host, port):
self.s = socket()
self.h = host
self.p = port
self.s.connect((self.h,self.p))
while True:
x = input('Upiši broj: ')
self.s.send(x.encode('utf-8'))
rezultat = self.s.recv(1024).decode('utf-8')
if rezultat == 'True':
print('Zbroj znamenaka broja {} je prost'.format(x))
elif rezultat=='False':
print('Zbroj znamenaka broja {} nije prost'.format(x))
else:
print('Kraj...')
break
Klijent('DESKTOP-59PTT3J',10000)
Podsjetnik:
Unutar naredbenog retka možete saznati:
IPv4 adresu:
C:\Users\Korisnik>ipconfig
.............................................
IPv4 Address. . . . . . . . . . . : 192.168.1.3
Ime računala:
C:\Users\Korisnik>hostname
DESKTOP-59PTT3J