Tôi đang cố gắng thêm chức năng mạng vào trò chơi của mình. Tôi muốn bất kỳ người dùng nào có thể lưu trữ trò chơi và bất kỳ ai cũng có thể kết nối với tư cách là khách hàng. Máy khách gửi thông tin cho máy chủ về vị trí người chơi của họ, v.v. Khi máy chủ nhận được một tin nhắn, nó sẽ xác nhận nó và sau đó phát nó cho các khách hàng khác. Tôi chủ yếu sẽ giao dịch với UDP, nhưng cũng sẽ cần TCP cho công cụ trò chuyện & vận động hành lang.
Vấn đề là dường như tôi không thể nhận được một gói được gửi từ máy khách đến máy chủ hoặc ngược lại mà không cho phép chuyển tiếp cổng trên bộ định tuyến của tôi. Nhưng tôi không nghĩ rằng điều này là cần thiết. Tôi tin rằng lý do tôi cần chuyển tiếp cổng là vì tôi muốn gửi một gói từ 1 máy tính trên mạng LAN đến một máy tính khác trên một mạng LAN khác, nhưng cả hai đều không có địa chỉ IP toàn cầu vì chúng nằm trong mạng LAN. Vì vậy, thực sự, tôi chỉ có thể gửi các gói nhắm mục tiêu vào bộ định tuyến của mạng khác, mà phải chuyển tiếp nó tới máy tôi muốn tiếp cận. Vì vậy, làm thế nào tôi có thể làm điều này mà không cần chuyển tiếp cổng? Bằng cách nào đó, một máy chủ web có thể giao tiếp với máy tính của tôi, không có ip toàn cầu, mà không cần chuyển tiếp cổng. Và tôi đã chơi nhiều game nhiều người chơi không yêu cầu tôi kích hoạt chuyển tiếp cổng. Vì vậy, nó phải có thể.
Btw, tôi đang sử dụng SDL_Net. Tôi không nghĩ rằng điều này sẽ thay đổi bất cứ điều gì mặc dù.