Rumah > Soal Jawab > teks badan
巴扎黑2017-04-18 10:38:57
Adakah anda telah menyelesaikan masalah melekit TCP?
Memandangkan ia adalah TCP, kami perlu mempertimbangkan 粘包
isu. 粘包
Jika masalah tidak diselesaikan, anda tidak akan dapat menentukan bait yang merupakan 4 bait pertama bagi satu paket.
Ringkasnya, anda menerima banyak bait, dan sumber bait ini mungkin seperti berikut:
Hantar semua bait dua atau tiga paket bersama
Separuh kedua paket sebelumnya dan separuh pertama bait paket seterusnya dihantar bersama
Ringkasnya, ia adalah campuran separuh beg atau beg melekit
Kami menggunakan netty
untuk menyelesaikan masalah paket melekit tcp Berikut adalah penyelesaian yang diterangkan dengan baik berdasarkan netty
: https://my.oschina.net/andylu...
伊谢尔伦2017-04-18 10:38:57
Apakah maksud membaca aliran input secara langsung dalam Java tanpa menangkap paket?
巴扎黑2017-04-18 10:38:57
Ini ialah masalah pengepala komunikasi soket Beginilah cara saya menanganinya dalam projek saya yang terdahulu
send(String url, int port, String content){
Socket socket = null;
OutputStream out = null;
DataOutputStream dataOutputStream = null;
try {
socket = new Socket(url, port);
out = socket.getOutputStream();
dataOutputStream = new DataOutputStream(out);
dataOutputStream.writeInt(content.getBytes().length);
dataOutputStream.write(content.getBytes());
dataOutputStream.flush();
...
}
}
Adalah disyorkan untuk menulis soket penerima untuk penyahpepijatan perlu menghadapi masalah dengan penangkapan paket Semoga ia dapat membantu anda~