Socket programming məntiqi

Salam dostlar. Nə zamandır məntiqini qavramağa çalışıram, xarici mənbələrə baxıram, amma heç cür oturmur. Dildən asılı olmadan, socket proqramlamanın addım-addım məntiqini izah edə bilərsinizmi?

Verilmiş cavablar və yazılan şərhlər (4 cavab var)

ahmed (2019-01-09 09:00:45)
Sizə UNIX Network Programming kitabını oxumağı məsləhət görürəm. Addım-addım izah olunur socket-in nə olduğu. Qısa belə izah eləmək olar. Əvvəlcə eyni kompüterdə icra olunan iki proqram təsəvvür edin. İcra olunan proqrama proses deyilir. A və B prosesləri. Tutaq ki biz A prosesindən hər-hansı məlumatı B prosesinə göndərmək istəyirik. Bunun üçün nədən istifadə etməliyik? Əlbəttə ki Proseslər Arası Əlaqə Vastələrindən. Bunlara aiddir: Proqram kanalları, Fifolar, Message Queue-lar, Shared Memory və əlbəttə ki Soket-lər. Socket-lər dən fərqli olaraq digərləri yalnız eyni kompüterdə icraolunan proqramlar arasında əlaqə yaratmağa imkan verir. Yalnız Socketlər müxtəlif kompüterlərdə(şəbəkə vastəsilə qoşulmuş) icra olunan proqramlar arasında əlaqə yaratmağa imkan verir. Qəbul olunmuş qaydaya görə bu əlaqə(bir prosesin digərinə qoşulması) aşağıdakı sxem üzrə baş verir: 1.Əvvəlcə Proseslərdən biri əlaqə qəbul etməyə hazırlaşır və bunun üçün gərəkən bütün hazırlıq işlərini görür. 2. Daha sonra həmin bu proses oturur və digərlərinin onunla əlaqə qurmaq üçün müraciət etməsini gözləyir. 3. Hər-hansı digər proses həmin bu proseslə əlaqə qurmaq üçün onun hansı kompüterdə gözlədiyini(İP ünvan) və hansı nömrə ilə ona qoşulmağın mümkün olduğunu bilməlidir(port number). 4. Bu məlumatları bilən proses əlaqə üçün müraciət edir və oturub gözləyən proses əlaqəni yaradır. Gözləyən proses adlanır server, qoşulan proses adlanır client. Server prosesinin icra olunduğu kompüter adlanır host.

E. Hacı (2019-01-07 22:36:38)
socket.io ilə filan bir dənə sadə nümunə qursanız localhostda, hər şey aydın olar. Ən loru dildə deyim, veb sayt üzərində: socket canlı bağlantı kanalıdır. Client - siz. Server - saytın serveri. Saytın serverində proqramı qurulur. Saytın kodunda javascript ilə bu socket serverə bağlantı scripti olur. Siz sayta daxil olmaqla həmin javascript işə düşür və sizin brauzerinizdə açdığınız sayt ilə saytın serveri arasında canlı bağlantı yaranır - bu canlı bağlantı zamanı tutaq ki serverə siz nəsə mesaj göndərirsiniz, bu zaman sizin mesajın serverə getməsi üçün yeni bir bağlantı qurulmur, socket tuneli açıqdır deyə mesaj oradan axıb gedir çatır. Eləcə də server o mesajı alır və sizə cavab verir tutaq ki, yenə də eyni tunellə geri qayıdır. Adi halda necə olur bəs. Siz serverə mesaj göndərəndə düyməyə basanda yeni http bağlantı qurulur, domain, ip filan üzərindən server tapılır, veb server sizin göndərdiyiniz mesaja uyğun http sorğunu veb serverlə qəbul edir, sonra emal edir və cavab qaytarır. Bu hər bir sadə sorğuda təzədən baş verir. Socketdə isə sayt ilə sizin brauzer bir növ xəttdə qalırlar, canlı yayında. Protokollar ilə, texniki dillə yox, sadə formada izah məncə daha vacibdir. Bu aydın olandan sonra texniki tərəfini mənimsəmək çox asandır.

Qafar Əhmədov (2019-01-07 18:49:11)
Socket-in özünün məntiqi çatmır mənə. Yəni server ayrı, klient ayrı, TCP protokolları filan, baş şişib qazan olur.

E. Hacı (2019-01-07 17:59:01)
Nə oxumusunuz və sizə əsas çatmayan nədir, zəhmət olmasa onu deyin öncə. Ki görək nələri oxumusuz nələr qaranlıq qalıb

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

cpu dəyişdirmək

Socket

CPU socket təyin etmək