Bạn có thể nghe bất kỳ cổng nào bạn muốn; nói chung, các ứng dụng người dùng nên nghe các cổng từ 1024 trở lên (thông qua 65535). Điều chính nếu bạn có số lượng người nghe có thể thay đổi là phân bổ phạm vi cho ứng dụng của bạn - giả sử 20000-21000 và LOẠI TRỪ CATCH. Đó là cách bạn sẽ biết nếu một cổng là không sử dụng được (được sử dụng bởi một quá trình khác, nói cách khác) trên máy tính của bạn.
Tuy nhiên, trong trường hợp của bạn, bạn không nên gặp sự cố khi sử dụng một cổng mã hóa duy nhất cho người nghe của mình, miễn là bạn in thông báo lỗi nếu liên kết không thành công. Lưu ý rằng hầu hết các ổ cắm của bạn (đối với nô lệ) không cần phải ràng buộc rõ ràng với các số cổng cụ thể - chỉ các ổ cắm chờ kết nối đến (như chủ của bạn ở đây) sẽ cần phải được thực hiện một trình lắng nghe và ràng buộc đến một cổng. Nếu một cổng không được chỉ định cho một socket trước khi nó được sử dụng, hệ điều hành sẽ gán một cổng có thể sử dụng cho socket. Khi thầy muốn trả lời một nô lệ gửi dữ liệu, địa chỉ của người gửi có thể truy cập được khi người nghe nhận dữ liệu.
Tôi đoán bạn sẽ sử dụng UDP cho điều này?
Nguồn
2009-09-02 00:13:25
Ngẫu nhiên, nếu bạn chỉ cần chọn một số cổng ngẫu nhiên hay ngẫu nhiên-ish (tốt nhất là cao hơn so với 1024), thì có lẽ nó sẽ có sẵn . Bạn thậm chí có thể sử dụng cổng 80 hoặc 21 hoặc bất cứ điều gì, miễn là không có chương trình khác đang lắng nghe trên đó. Tại bất kỳ thời điểm nào, trên một hệ thống bình thường, chỉ một phần nhỏ các cổng được sử dụng. –
Chọn một cổng ngẫu nhiên không phải là một ý tưởng hay - hãy để hệ điều hành chọn một cho bạn. – Corehpf
Trên POSIX: http://stackoverflow.com/questions/913501/how-to-let-kernel-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket-pr –