Tôi cần một ứng dụng gửi gói UDP tới một số máy chủ mạng và nhận được phản hồi. Máy chủ trả lời cùng một số cổng mà yêu cầu đến từ, vì vậy trước tiên tôi cần phải kết nối() ổ cắm của tôi với bất kỳ số cổng UDP nào.Cách liên kết với bất kỳ cổng nào có sẵn?
Mã hóa số cổng UDP là một ý tưởng tồi, vì nó có thể được sử dụng bởi bất kỳ ứng dụng nào khác đang chạy trên cùng một máy tính.
Có cách nào để liên kết ổ cắm UDP với bất kỳ cổng nào có sẵn không? IMO nó phải là một cách hiệu quả để nhanh chóng có được một cổng miễn phí #, được sử dụng bởi ví dụ: Hàm accept().
Nếu không, thì chiến lược nào tốt nhất để thử ràng buộc và kiểm tra trạng thái WSAEADDRINUSE/EADDRINUSE: thử các cổng tuần tự bắt đầu từ 1025 hoặc 1025 + rand() hoặc một số khác?
accept() được sử dụng trong các ổ cắm dựa trên kết nối, chứ không được sử dụng trong các gói dữ liệu. – Beano
có thể điều này sẽ giúp: http://serverfault.com/questions/447044 – yegor256
Trong POSIX? Cũng yêu cầu dải 1024+: http://stackoverflow.com/questions/913501/how-to-let-kernel-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket- pr –