Der Inhalt von buf ist google.com im Byte-Format. meine frage ist also, was wird "in" gelesen? \ Grundlegendes zu getInputStream und getOutputStream

Hier ist ein Code

import java.io.*;
import java.net.*;
public class Whois
{
    public static void main(String[] args)
        throws Exception
    {
        // TODO Auto-generated method stub
        int c;
        Socket s = new Socket("whois.internic.net",43);
        *InputStream in = s.getInputStream();
        *OutputStream out = s.getOutputStream();
        String str = (args.length == 0 ? "osborne.com" : args[0] ) + "\n";
        byte buf[] = str.getBytes();
        *out.write(buf);
        System.out.print("hey baby");
        while ((c=in.read()) != -1)
        {
            System.out.print((char) c);
        }
        s.close();
    }
}

Ich habe die Aussagen markiert, dass ich ein Problem mit dem Verständnis habe. Ich verstehe nicht, welches OutputStream-Objektout wird gehalten, wenn es zugewiesen ists.getOutputStream() und was ist das Bedürfnis zu vergehenbuf zuout durchout.write(buf) .

Ich habe die Ein- und Ausgabe von Streams mit Dateien gelernt, aber ich verstehe das nichtgetinputstream undoutputstreamsIch habe es gegoogelt, hier auf SO sowie aus vielen verschiedenen Büchern und auch aus Orakeldokumenten gelesen. Bitte besprechen Sie es ausführlich.

Ich weiß, wie man aus Dateien liest und wie man in sie schreibt. Aber hier verstehe ich nicht, was die Notwendigkeit des Übergebens istbuf Array, das nur eine Zeichenfolge enthält. Was ich fragen möchte, ist, dass, wenn in den Eingabestream des Sockets hat, warum können wir nicht direkt nur daraus lesen? Was genau ist eine Steckdoseinputstream undoutputstream?

Ich habe hier auf SO etwas gefunden, hier ist der Link "Java-Netzwerk: Erläutern Sie InputStream und OutputStream in Socket", sagt hier eine Antwort von DNA

In Java erhalten Sie zum Senden von Daten über den Socket einen OutputStream (1) und schreiben in den OutputStream (Sie geben einige Daten aus). "

Das verwirrt mich, wenn outputStream verwendet wird, um Daten über den Socket zu senden. Was brauchte out.write (buf)? Warum müssen wir "google.com" an outputStream senden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage