Kami membuat 2 koneksi antara server Java dan klien C++. Panggilan objek Java ServerSocket menerima() dua kali dan masing-masing mengembalikan 1 soket; klien C++ memanggil connect() dua kali. Kami berasumsi port Socket pertama yang dikembalikan oleh Accept() harus sama dengan port soket klien pertama yang memanggil connect(), dan sama untuk pasangan soket ke-2.
Tetapi dengan memeriksa nomor port pada setiap soket, saya kadang-kadang melihat kasus yang tidak normal, di mana Soket pertama dari terima() terhubung ke soket klien ke-2 yang memanggil connect(), dan soket ke-2 dari terima() terhubung ke soket klien pertama .
Baik server dan klien adalah single threaded di sini untuk membuat koneksi. Bagaimana urutannya bisa dibalik?