O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“Telekommunikatsiya texnologiyalari” fakulteti
FAN:Tarmoqni dasturlash asoslari
Bajardi: 415-20 guruh talabasi
Abduxalilov Sanjar
Tekshirdi: Zarmasov Elbek
1-topshiriq
Mavzu: TCP kliyent-server tarmoq dasturini yaratish
Ishning maqsadi: Talabalarda Java dasturlash tili java.net.* va java.io.* paketlari klasslaridan foydalanib TCP kliyent-server tarmoq dasturini yaratish bo‘yicha amaliy ko‘nikmalar hosil qilish.
Nazariy qism: TCP kliyentini yaratish. Kliyentning birinchi o‘rinda bajaradigan vazifasi server bilan aloqa o‘rnatishdan iborat. Server va kliyent o‘rtasida aloqa o‘rnatish uchun Socket obyekti yaratiladi. TCP kliyent soketi ilovasini yaratish uchun quyidagi vazifalar bajariladi:
Socket obyektidan foydalanib kliyent soketini yaratish.
Soketga yozish va undan o‘qish.
Ulanishni tugallash. Kliyent soketini yaratish. Kliyent soketining obyekti server tomonidan eshitiladigan ikki parametr IP manzil va port raqamini qabul qiluvchi Socket klassining konstruktori yordamida yaratiladi.
Socket clientSocket = new Socket("127.0.0.1", 1001); Yuqoridagi kod fragmentida 127.0.0.1 ga teng bo‘lgan IP manzil va 1001- port shunday soketni aniqlaydiki, ushbu soketda server kliyent so‘rovlarini kutadi. Soketdan o‘qish va yozish. Kliyent va server o‘rtasida ulanish o‘rnatilganidan so‘ng kliyent serverga soket orqali so‘rov yuboradi. Soketdan o‘qish va yozish fayldan o‘qish va yozishga o‘xshash.
1.serverni ko’tarish kodlari:
#server.py
import socket
# Serverni ma'lumotlari
server_host = '127.0.0.1'
server_port = 12345
# Server socketni yaratish
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Serverni IP va portga bog'lash
server_socket.bind((server_host, server_port))
# Serverni eshitish rejimiga o'tish
server_socket.listen(1)
print(f"Server {server_host}:{server_port} portni eshitishda...")
# Klientni qabul qilish
client_socket, client_address = server_socket.accept()
print(f"Klient {client_address} ulandi.")
while True:
# Klientdan ma'lumot qabul qilish
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print(f"Klientdan olingan ma'lumot: {data}")
# Klientga javob yuborish
response =str(max(eval(data)))
client_socket.send(response.encode('utf-8'))
# Klient va server socketlarni yopish
client_socket.close()
server_socket.close()
2.Clientni ishlatish kodlari:
#Clientga .py
import socket
# Serverning ma'lumotlari
server_host = '127.0.0.1'
server_port = 12345
# Klient socketni yaratish
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Serverga ulanish
client_socket.connect((server_host, server_port))
while True:
sonlar = []
n = int(input("Ixtiyoriy son kiriting:"))
for son in range(n):
sonlar.append(int(input(f"{son+1}-sonni kiriting:")))
message =str(sonlar)
client_socket.send(message.encode('utf-8'))
# Serverdan javobni olish
data = client_socket.recv(1024).decode('utf-8')
print(f"Serverdan olingan javob: {data}")
# Klient socketni yopish
client_socket.close()
#server.py
import socket
# Serverni ma'lumotlari
server_host = '127.0.0.1'
server_port = 12345
# Server socketni yaratish
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Serverni IP va portga bog'lash
server_socket.bind((server_host, server_port))
# Serverni eshitish rejimiga o'tish
server_socket.listen(1)
print(f"Server {server_host}:{server_port} portni eshitishda...")
# Klientni qabul qilish
client_socket, client_address = server_socket.accept()
print(f"Klient {client_address} ulandi.")
while True:
# Klientdan ma'lumot qabul qilish
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print(f"Klientdan olingan ma'lumot: {data}")
# Klientga javob yuborish
response =str(max(eval(data)))
client_socket.send(response.encode('utf-8'))
# Klient va server socketlarni yopish
client_socket.close()
server_socket.close()
Natija:
2-topshiriq
|