Trước hết, có vấn đề gì khi sử dụng cả UDP và TCP trên cùng một máy chủ không?
Thứ hai, tôi có thể sử dụng cùng một số cổng không?
Trước hết, có vấn đề gì khi sử dụng cả UDP và TCP trên cùng một máy chủ không?
Thứ hai, tôi có thể sử dụng cùng một số cổng không?
Câu trả lời:
Có, bạn có thể sử dụng cùng một số cổng cho cả TCP và UDP. Nhiều giao thức đã làm được điều này, ví dụ như DNS hoạt động trên udp / 53 và tcp / 53.
Về mặt kỹ thuật, các nhóm cổng cho mỗi giao thức hoàn toàn độc lập, nhưng đối với các giao thức cấp cao hơn có thể sử dụng TCP hoặc UDP, quy ước rằng chúng mặc định là cùng một số cổng .
Khi viết máy chủ của bạn, hãy nhớ rằng chuỗi sự kiện đối với ổ cắm TCP khó hơn nhiều so với ổ cắm UDP, vì cũng như các lệnh gọi socket
và thông thường bind
bạn cũng phải listen
và accept
.
Hơn nữa rằng accept
cuộc gọi sẽ trả về một socket mới và nó là ổ cắm mà sau đó bạn sẽ phải cũng bình chọn cho nhận các sự kiện. Máy chủ của bạn nên được chuẩn bị để tiếp tục nhập các accept
kết nối trên ổ cắm ban đầu trong khi phục vụ đồng thời nhiều máy khách, mỗi máy khách sẽ kích hoạt các sự kiện nhận trên ổ cắm riêng của chúng.
Thứ nhất, không có vấn đề gì khi sử dụng cả tcp và udp trên máy chủ.
Thứ hai, chúng ta có thể có cả yêu cầu UDP và TCP trên cùng một cổng, bởi vì mỗi yêu cầu được xác định bởi một nhóm phân vị chứa bởi IP nguồn, IP đích, Cổng nguồn, Cổng đích, PROTOCOL (vì giao thức có thể là TCP hoặc UDP).