Her şeyden önce, aynı sunucuda hem UDP hem de TCP kullanmada herhangi bir sorun var mı?
İkinci olarak, aynı bağlantı noktası numarasını kullanabilir miyim?
Her şeyden önce, aynı sunucuda hem UDP hem de TCP kullanmada herhangi bir sorun var mı?
İkinci olarak, aynı bağlantı noktası numarasını kullanabilir miyim?
Yanıtlar:
Evet, hem TCP hem de UDP için aynı bağlantı noktası numarasını kullanabilirsiniz. Birçok protokol bunu zaten yapıyor, örneğin DNS udp / 53 ve tcp / 53 üzerinde çalışıyor.
Teknik olarak, her protokol için bağlantı noktası havuzları tamamen bağımsızdır, ancak TCP veya UDP kullanabilen daha yüksek seviyeli protokoller için varsayılan olarak aynı bağlantı noktası numarasına sahip olmaları gelenekseldir .
Akılda sunucu, ayı yazarken de, normal olarak bu yana bir TCP soketi için olaylar dizisi, çok zor bir UDP yuvası daha olduğunu socket
ve bind
çağrılar da var listen
ve accept
.
Dahası bu accept
çağrı yeni bir soket dönecek ve bu kadar olduğunu daha sonra etkinlik alıyoruz için Ankette ayrıca gerekeceğini soket. Sunucunuz, accept
her biri kendi soketlerindeki alma olaylarını tetikleyecek olan birden fazla istemciye aynı anda hizmet verirken, orijinal soket üzerinde bağlantılara devam etmeye hazır olmalıdır .
İlk olarak, sunucuda hem tcp hem de udp kullanımında herhangi bir sorun yoktur.
İkinci olarak, aynı bağlantı noktasında hem UDP hem de TCP isteklerine sahip olabiliriz, çünkü her istek kaynak IP, Hedef IP, Kaynak Bağlantı Noktası, Hedef Bağlantı Noktası, PROTOCOL (protokol TCP veya UDP olabilir) tarafından içerilen beş katıyla tanımlanır.