Java-socket-server, C# - socket-client, Probleme bei der Kommunikation?

Erm, ich bin neu in Steckdosen und auch neuere Java, so dass Java-Seite ist im Grunde genommen kopiert und eingefügt werden. Der C# - Seite ist ein wenig mehr selbst gemacht.

Ich bin gekommen, zu denken, dass es möglicherweise einige Unterschiede in der Art und Weise Java-und C# - strings interpretieren; ich habe es teilweise arbeiten mit der jetzt veraltet "readLine" - Methode in Java.

Auf der C# Seite:

    private void pollChat()
    {
        while (clientSocket.Connected)
        {
            try
            {
                NetworkStream serverStream = clientSocket.GetStream();

                byte[] inStream = new byte[10025];
                serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
                string returndata = System.Text.Encoding.UTF8.GetString(inStream);
                msg(returndata);
            }
            catch (SocketException)
            {
                clientSocket.Close();
                msg("Socket Exception");
            }
        }
    }

... für den Erhalt der Dinge, (die ich geändert habe System.Text.- Codierung.ASCII, UTF8, aber es hat nicht geholfen) ... und

                NetworkStream serverStream = clientSocket.GetStream();
                byte[] outStream = System.Text.Encoding.UTF8.GetBytes(nickname + ": " + textBoxToSubmit.Text + "$");
                serverStream.Write(outStream, 0, outStream.Length);
                serverStream.Flush();

... für den Versand Dinge.

Auf die Java-server-Seite...

void sendToAll( String message ) {

    synchronized( outputStreams ) {

        for (Enumeration e = getOutputStreams(); e.hasMoreElements(); ) {

            DataOutputStream dout = (DataOutputStream)e.nextElement();

            try {
                dout.writeBytes( message );
            } catch( IOException ie ) { System.out.println( ie ); }

        }
    }
}

... für das senden Dinge, und

        while (true) {

            //... read the next message ...
            String message = din.readUTF();

            //... tell the world ...
            System.out.println( "Sending "+message );

            //... and have the server send it to all clients
            server.sendToAll( message );

        }

... für den Erhalt der Dinge.

Ich entschuldige mich für die riesige Menge von eingefügten code, aber bitte Geduld mit mir.

Vielen Dank im Voraus!

Sie haben nicht gesagt, was das eigentliche problem ist. "Kommunikationsprobleme" ist sehr vage.
Können Sie nach, welches Verhalten Sie immer, dass Sie nicht erwarten,... mit beiden UTF8 und ASCII? Wenn Sie zufrieden sind, nur mit englischen Buchstaben, ich würde empfehlen, geht zurück auf ASCII, so können Sie konzentrieren sich auf ein Thema zu einer Zeit.
Gut, ich habe es geschafft, die C# - Seite zu übertragen, um die Java-server, aber jetzt bin ich verwirrt, wie Java übertragen, zurück in die C# - Seite. Bitte sehen Sie die "Antwort" weiter unten gepostet, dass ich.
Also deine eigentliche Frage ist "Wie kann ich übertragen Sie Daten zurück an einen Java-Socket aus einem C# - socket -?" Vielleicht lohnt es, sich Gedanken über Ihre Frage, ein wenig erste und aktualisiert werden, anstatt mit Verweis auf "Kommunikationsprobleme", ... es könnte dazu führen, dass weniger Probleme bei der Kommunikation. ;p
Sie erkennen, dieser thread ist fast drei Jahre alt? Auch wenn das meine Frage (ich habe nicht die Zeit jetzt überprüfen), ich glaube nicht, dass Feindseligkeit helfen würde "Kommunikation."

InformationsquelleAutor Jonathan Chan | 2010-02-07

Schreibe einen Kommentar