网络编程 - Java调用DataOuputStream的write方法写入数据第一个字节不知所踪
大家讲道理
大家讲道理 2017-04-18 10:36:57
0
4
924
大家讲道理
大家讲道理

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

membalas semua(4)
巴扎黑

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...

伊谢尔伦

Apakah maksud membaca aliran input secara langsung dalam Java tanpa menangkap paket?

巴扎黑

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~

迷茫

Sudahkah anda menelefon flush?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan