Aracılığıyla paylaş


Windows Sockets: Genel Bakış

Bu makalede Windows Sockets'ın yapısı ve amacı açıklanmaktadır. Ayrıca makale:

Windows Sockets belirtimi, Microsoft Windows için ikili uyumlu bir ağ programlama arabirimi tanımlar. Windows Yuvaları, Berkeley'deki California Üniversitesi'nden Berkeley Yazılım Dağıtımı'nda (BSD, sürüm 4.3) UNIX yuva uygulamasını temel alır. Belirtim hem BSD stili yuva yordamlarını hem de Windows'a özgü uzantıları içerir. Windows Yuvaları'nı kullanmak, uygulamanızın Windows Yuvaları API'sine uygun herhangi bir ağ üzerinden iletişim kurmasına izin verir. Win32'de, Windows Soketleri iş parçacığı güvenliğini sağlar.

Birçok ağ yazılımı satıcısı, İletim Denetimi Protokolü/İnternet Protokolü (TCP/IP), Xerox Ağ Sistemi (XNS), Digital Equipment Corporation'ın DECNet protokolü, Novell Corporation İnternet Paket Değişimi/Sıralı Paketli Exchange (IPX/SPX) ve diğerleri dahil olmak üzere ağ protokolleri altında Windows Yuvalarını destekler. Mevcut Windows Yuvaları belirtimi TCP/IP için yuva soyutlamasını tanımlasa da, herhangi bir ağ protokolü Windows Yuvalarını uygulayan dinamik bağlantı kitaplığının (DLL) kendi sürümünü sağlayarak Windows Yuvaları ile uyumlu olabilir. Windows Soketleri ile yazılmış ticari uygulamalara örnek olarak X Windows sunucuları, terminal öykünücüleri ve elektronik posta sistemleri örnekler arasında yer alır.

Uyarı

Windows Yuvaları'nın amacı, bu ağ hakkında bilgi sahibi olmanız gerekmemesi ve uygulamanızın yuvaları destekleyen herhangi bir ağda çalışabilmesi için temel ağı soyutlamadır. Sonuç olarak, bu belgelerde ağ protokollerinin ayrıntıları ele alınmaz.

Microsoft Foundation Sınıf Kitaplığı (MFC), iki sınıf sağlayarak Windows Yuvaları API'siyle programlamayı destekler. Bu sınıflardan CSocketbiri olan , ağ iletişimleri programlamanızı basitleştirmek için yüksek düzeyde bir soyutlama sağlar.

Windows Sockets belirtimi, Microsoft Windows altında ağ bilgi işlemi için Açık Arabirim olan Windows Sockets, şu anda 1.1 sürümünde olup, TCP/IP topluluğundaki büyük bir grup kişi ve kuruluş tarafından açık ağ standardı olarak geliştirilmiştir ve ücretsiz olarak kullanılabilir. Soket programlama modeli, İnternet Protokol Takımı kullanılarak şu anda bir iletişim etki alanını destekler. Belirtim Windows SDK'sında kullanılabilir.

Tavsiye

Soketler İnternet Protokol Seti'ni kullandığından, "bilgi otoyolunda" İnternet iletişimini destekleyen uygulamalar için tercih edilen rotadır.

Soket tanımı

Yuva, bir iletişim uç noktasıdır; bir Windows Yuvaları uygulamasının ağ üzerinden veri paketleri gönderdiği veya aldığı nesnedir. Soket, bir türü olan ve çalışan bir süreçle ilişkilendirilen bir yapıdır, ayrıca bir adı da olabilir. Şu anda yuvalar genellikle yalnızca İnternet Protokolü Paketi'ni kullanan aynı "iletişim etki alanındaki" diğer yuvalarla veri alışverişi gerçekleştirir.

Her iki yuva türü de çift yönlü; bunlar her iki yönde aynı anda (tam çift yönlü) iletişim kurabilen veri akışlarıdır.

İki yuva türü mevcuttur:

  • Akış yuvaları

    Akış yuvaları, kayıt sınırları olmayan bir veri akışı sağlar: bayt akışı. Akışların teslim edilmesi, doğru sırada olması ve yinelenmemesi garanti edilir.

  • Datagram yuvaları

    Datagram soketleri, teslim edilmesi garanti edilmeyen ve aynı sıra ile veya çoğaltılmadan gönderilmeyen kayıt odaklı bir veri akışını destekler.

"Sıralı", paketlerin gönderilen sırayla teslim edilmesi anlamına gelir. "Yinelenmemiş", belirli bir paketi yalnızca bir kez edindiğiniz anlamına gelir.

Uyarı

XNS gibi bazı ağ protokolleri altında akışlar, bayt akışları yerine kayıt akışları olarak kaydedilebilir. Ancak daha yaygın TCP/IP protokolü altında akışlar bayt akışlarıdır. Windows Yuvaları, temel alınan protokolden bağımsız bir soyutlama düzeyi sağlar.

Bu türler ve hangi durumlarda kullanılacak yuva türü hakkında bilgi için bkz . Windows Yuvaları: Akış Yuvaları ve Windows Yuvaları: Veri Birimi Yuvaları.

SOCKET Veri Türü

Her MFC soket nesnesi, bir Windows Sockets nesnesinin tanıtıcısını kapsüller. Bu tanıtıcının veri türü SOCKET'dir. YUVA tutamacı, bir pencere tutamacına HWND ile analogdur. MFC yuva sınıfları kapsüllenmiş tanıtıcı üzerinde işlemler sağlar.

SOCKET veri türü Windows SDK'sında ayrıntılı olarak açıklanmıştır. Windows Yuvaları altında "Yuva Veri Türü ve Hata Değerleri" bölümüne bakın.

Yuvaların Kullanım Alanları

Soketler en azından üç farklı iletişim bağlamında çok işe yarar.

  • İstemci/sunucu modelleri.

  • Mesajlaşma uygulamaları gibi eşler arası senaryolar.

  • Alıcı uygulamanın bir iletiyi işlev çağrısı olarak yorumlamasını sağlayarak uzaktan yordam çağrıları (RPC) yapma.

Tavsiye

MFC yuvalarını kullanmak için ideal durum, iletişimin her iki ucunu da yazdığınızdadır: her iki uçta da MFC kullanmak. MFC olmayan uygulamalarla iletişim kurarken durumu yönetme de dahil olmak üzere bu konu hakkında daha fazla bilgi için bkz Windows Soketleri: Bayt Sıralama.

Daha fazla bilgi için bkz. Windows Yuva Belirtimi: ntohs, ntohl, htons, htonl. Ayrıca aşağıdaki konulara bakın:

Ayrıca bakınız

MFC'de Windows Sockets