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
undoutputstreams
Ich 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?