Bir TCP bağlantısı kurduğunuzda, 4-tuple (kaynak-ip, kaynak-port, dest-ip, dest-port) benzersiz olmalıdır - bu, paketlerin doğru yere teslim edilmesini sağlamak içindir.
Sunucu tarafında, yalnızca bir sunucu programının gelen bir bağlantı noktası numarasına bağlanabileceği başka bir kısıtlama vardır (bir IP adresi varsayılarak; çoklu NIC sunucularının başka yetkileri vardır, ancak bunları burada tartışmamıza gerek yoktur).
Yani sunucu sonunda siz:
- bir soket oluşturun.
- bu soketi bir bağlantı noktasına bağlayın.
- o limanda dinle.
- o bağlantı noktasındaki bağlantıları kabul edin. ve gelen birden fazla bağlantı olabilir (istemci başına bir).
İstemci tarafında, genellikle biraz daha basittir:
- bir soket oluşturun.
- bağlantıyı açın. Bir istemci bağlantıyı açtığında, sunucunun ip adresini ve bağlantı noktasını belirtir . Bu edebilir kaynak bağlantı noktası belirtin ancak genellikle otomatik it a serbest liman atama sisteminde sıfır hangi sonuçları kullanır.
Orada hiçbir Google'a kullanmak mümkün olan bir seferde sadece bir kişi neden olacaktır ve bu oldukça iyi kendi iş modelini yok edeceğini beri hedef IP / port benzersiz olmasını şart.
Bu, tek farkın kaynak bağlantı noktanız olduğu ve parçaları paralel olarak indirmenize izin veren birden fazla oturum ayarladığınız için çoklu oturum FTP gibi harika şeyler bile yapabileceğiniz anlamına gelir. Torrentler, her oturumun hedefi genellikle farklı olduğu için biraz farklıdır.
Ve tüm bu wafflinglerden sonra (üzgünüm), özel sorunuzun cevabı, boş bir bağlantı noktası belirlemenize gerek olmadığıdır. Bir sunucuya kaynak bağlantı noktanızı belirtmeyen bir çağrı ile bağlanıyorsanız, neredeyse kesinlikle kapakların altında sıfır kullanacak ve sistem size kullanılmayan bir bağlantı verecektir.