Socket nima va qanday ishlaydi ?
Diqqat iloji boricha toza kod yozishga harakat qilindi.Agar hatoliklar bo'lsa tog'irlashga harakat qilinganlar !
Last updated
Diqqat iloji boricha toza kod yozishga harakat qilindi.Agar hatoliklar bo'lsa tog'irlashga harakat qilinganlar !
Last updated
Socket — tarmoq orqali ikki qurilma yoki dastur o‘rtasida ma'lumot almashish uchun ishlatiladigan interfeys. Socketlar orqali tarmoq aloqasini o‘rnatish va boshqarish mumkin. Bu jarayonda socket mijoz (client) va server (server) o‘rtasida aloqa o‘rnatadi.
Socket quyidagi jarayonlar orqali ishlaydi:
Socket yaratish: Server yoki mijoz dasturi socketni yaratadi.
Bog‘lanish (bind): Server socket o‘zining IP-manzili va portini socketga bog‘laydi.
Tinglash (listen): Server socket keluvchi ulanishlarni kutadi.
Ulanish (connect): Mijoz socket serverga ulanadi.
Ma'lumot almashinuvi: Ulanish o‘rnatilgandan so‘ng, mijoz va server o‘zaro ma'lumot almashadi (send
, recv
).
Yopish (close): Aloqa tugagach, socket yopiladi.
Assemblyda socket dasturi
Quyida oddiy TCP server dasturi misolini ko‘rsataman. Bu dastur mijozdan ma'lumot qabul qiladi va uni ekranga chiqaradi.
Dasturning vazifasi:
TCP server socket yaratadi.
Keluvchi ulanishlarni qabul qiladi.
Mijozdan xabarni qabul qilib, ekranga chiqaradi.
So‘ng socketni yopadi.
Assembly kod (Linux, x86, 32-bit):
Socket yaratish: socket(AF_INET, SOCK_STREAM, 0)
chaqirilib, TCP socket yaratiladi.
Bind: bind()
yordamida socket lokal IP manzil va portga bog‘lanadi.
Listen: listen()
yordamida keluvchi ulanishlar kutiladi.
Accept: accept()
keluvchi ulanishni qabul qiladi.
Recv: recv()
orqali mijozdan kelgan ma'lumot o‘qiladi.
Write: write()
orqali qabul qilingan xabar ekranga chiqariladi.
Close: Socketlar yopiladi (sys_close
).
Server socket tinglash uchun ishlatiladi.
Client socket mijoz bilan aloqani o‘rnatadi.
TCP protokoli bog‘langan aloqa (connection-oriented) bo‘lib, xavfsiz va ishonchli ma'lumot uzatishni ta'minlaydi.
Xatolarni qayta ishlash va tizim chaqiruvlarining qaytish kodlarini tekshirish tavsiya etiladi.