Kliyent tomondan holatni boshqarish. C # da tarmoq aloqasi.



Download 20,64 Kb.
bet3/3
Sana05.01.2022
Hajmi20,64 Kb.
#317433
1   2   3
Bog'liq
Kliyent tomondan holatni boshqarish

Server qismi

TCP-serverni amalga oshirish uchun sizga ikkita sinf TcpListener (ma'lum bir portni tinglash va mijoz ulanishlarini boshqarish uchun) va TcpClient (ulangan mijozlar bilan ma'lumotlar almashinuvi uchun) kerak bo'ladi.

TcpListenet sinfi uchun konstruktor ikkita parametrni oladi, IP-manzil va port raqami.

IPAddress localAddr = IPAddress.Parse("127.0.0.1");

int port = 8888;

TcpListener server = new TcpListener(localAddr, port);
Shuni esda tutingki, TcpClient-dan farqli o'laroq, bu erda IP-manzillar System.Net nom maydonidan IPAddress sinfining ob'ekti bilan ifodalanadi.

Server Start usuli yordamida ishga tushirildi.



server.Start();
Start usulini chaqirgandan so'ng, TcpListener ob'ekti mijozning ulanishini kutadigan cheksiz tsikl ishga tushiriladi va u AcceptTcpClient usuli yordamida amalga oshishi bilanoq TcpClient ob'ekti yaratiladi, bu esa ulangan mijoz bilan ma'lumotlar almashinuvini ta'minlaydi. mijoz qismi uchun tavsiflanganidek.

TcpClient client = server.AcceptTcpClient();
Quyida mijozlardan mag'lubiyatga oid xabarlarni qabul qiladigan va ularga javoblarni mag'lubiyatga yuboradigan TCP-serverni amalga oshirishning to'liq namunasi keltirilgan.
// Server parametrini o`rnatish

IPAddress localAddr = IPAddress.Parse("127.0.0.1");

int port = 8888;

TcpListener server = new TcpListener(localAddr, port);

// serverni ishga tushirish

server.Start();

// chekzis takrorlanish

while (true)

{

try

{

// Cliyentga ulanish

TcpClient client = server.AcceptTcpClient();

NetworkStream stream = client.GetStream();

// ma’lumot almashish

try

{

if (stream.CanRead)

{

byte[] myReadBuffer = new byte[1024];

StringBuilder myCompleteMessage = new StringBuilder();

int numberOfBytesRead = 0;

do

{

numberOfBytesRead = stream.Read(myReadBuffer, 0, myReadBuffer.Length);

myCompleteMessage.AppendFormat("{0}", Encoding.UTF8.GetString(myReadBuffer, 0, numberOfBytesRead));

}

while (stream.DataAvailable);

Byte[] responseData = Encoding.UTF8.GetBytes("Muvafaqqiyatli amalga oshirildi!");

stream.Write(responseData, 0, responseData.Length);

}

}

finally

{

stream.Close();

client.Close();

}

}

catch

{

server.Stop();

break;

}

}
E'tibor bering, mijoz tomonidan farqli o'laroq, server avval kiruvchi xabarni qabul qiladi va shundan keyingina javob yuboradi (harakatlarning teskari tartibi).

Shuni ham ta'kidlash kerakki, istisno holatida, server to'xtab qoladi va cheksiz sikl tugaydi, shunda juda muhim xatolik yuz berganda dastur "osilib qolmaydi".


Tarmoq va dastur bilan ishlash

Tarmoq orqali aloqa juda ko'p vaqt talab qilishi mumkin. O'z navbatida, mijozning serverga ulanishini kutish umuman abadiy davom etishi mumkin. Bularning barchasi dasturga kirish imkoni bo'lmasligiga olib kelishi mumkin ("osib qo'yish").



Bunga yo'l qo'ymaslik uchun mehmonxona oqimida tarmoq bilan ishlash qat'iyan tavsiya etiladi.
Download 20,64 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish