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

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

répondre à tous(4)
巴扎黑

Avez-vous résolu le problème du TCP persistant ?
Puisqu'il s'agit de TCP, nous devons considérer les 粘包 problèmes. 粘包Si le problème n'est pas résolu, vous ne pourrez pas déterminer quels octets constituent les 4 premiers octets d'un paquet.

En bref, vous recevez beaucoup d'octets, et la source de ces octets peut être la suivante :

  • Envoyer tous les octets de deux ou trois paquets ensemble

  • La seconde moitié du paquet précédent et la première moitié des octets du paquet suivant sont envoyées ensemble

  • En bref, c'est un mélange d'un demi-sac ou d'un sachet collant

Nous utilisons netty pour résoudre le problème des paquets collants TCP Voici une solution bien expliquée basée sur netty : https://my.oschina.net/andylu...

.
伊谢尔伦

Que signifie lire le flux d'entrée directement en Java sans capturer le paquet ?

巴扎黑

Il s'agit d'un problème d'en-tête de communication de socket. Voici comment je l'ai géré dans mon projet précédent. L'extrait de code est le suivant :

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();
        ...
    }
}

Il est recommandé d'écrire un socket de réception pour le débogage. Je n'ai jamais utilisé l'outil de capture de paquets ou débogué conjointement avec l'autre partie. Si l'autre partie peut le recevoir et l'analyser avec succès, tout ira bien. J'ai besoin d'avoir des ennuis avec la capture de paquets.
J'espère que cela pourra vous aider~

.
迷茫

Avez-vous suivi flush ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal