recherche

Maison  >  Questions et réponses  >  le corps du texte

网络编程 - Java调用DataOuputStream的write方法写入数据第一个字节不知所踪

大家讲道理大家讲道理2781 Il y a quelques jours922

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑2017-04-18 10:38:57

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

    .

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:38:57

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

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:38:57

    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~

    .

    répondre
    0
  • 迷茫

    迷茫2017-04-18 10:38:57

    Avez-vous suivi flush ?

    répondre
    0
  • Annulerrépondre