关于java网络编程client端提示SocketException
大家讲道理
大家讲道理 2017-04-18 10:47:10
0
2
584
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(2)
洪涛

Sila betulkan saya:
Kemungkinan perkara utama masalah: Pelanggan hanya menerima() sekali dan tidak menutup aliran keluaran

1. Pelanggan mengekalkan contoh clientSocket (sambungan dipanggil sekali sahaja), dan pelayan mengekalkan tika ServerSocket. Hanya mengekalkan satu soket pelanggan dan mengharapkan pemprosesan input kedua nampaknya sedang bersedia untuk sambungan yang panjang.

Apabila aliran keluaran ditutup, soket yang sepadan dengan aliran keluaran juga akan ditutup - "Crazy Java Lecture Notes (Edisi Ketiga)" p786

2. Mari lihat pelayan. ss.accept() diletakkan dalam gelung, iaitu untuk mengendalikan sambungan pelanggan berbilang, terdapat operasi baca untuk setiap pelanggan, dan tiada operasi baca seterusnya, yang mungkin menjadi masalah.

Sambungan pendek atau sambungan panjang? Untuk komunikasi berbilang berterusan, anda boleh menggunakan satu sambungan, baca dan tulis berbilang kali (sambungan panjang), atau anda boleh berbilang sambungan, setiap sambungan membaca dan menulis sekali ( Pendek sambungan)
Pelanggan anda ingin membuat sambungan yang panjang, tetapi pelayan nampaknya ingin membuat sambungan yang singkat. Cadangan:

Sambungan lama: Pelanggan kekal tidak berubah Pelayan hanya menerima () sekali untuk setiap klien, memproses berbilang komunikasi input dalam satu gelung dan memantau strim. Tetapi soket tidak ditutup.

Sambungan pendek: Setiap kali pelanggan memulakan sambungan soket baharu (mencipta tika soket baharu), setiap kali operasi selesai, menutup strim dan menutup soket. Badan gelung pelayan kekal tidak berubah, strim ditutup dalam badan gelung dan soket yang dikembalikan oleh setiap terima() ditutup.

Oleh kerana saya tidak tahu perniagaan anda, saya tidak tahu niat sebenar kod tersebut. Perkara lain yang patut dikembangkan ialah:

Sambungan berbilang pelanggan, berbilang sambungan, pengurusan sesi, konkurensi dan banyak lagi.

伊谢尔伦

Anda boleh melihat lebih dekat pada kod anda. Anda menutupnya setiap kali dalam gelung sementara.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!