phttpd: Pseudo-Hyper-Text-Übertragungsprotokoll-Daemon (Pseudo-HTTP-Verarbeitung)
"TCP / IP JAVA-Netzwerkprogrammierung aus den Grundlagen verstanden" Kompiliert mit Eclipse. Debuggen mit Wireshark. https://qiita.com/drafts/14519536b827fdadb32e/
phttpd.java
import java.io.*;
import java.net.*;
/// remove java.util.*
public class phppd {
public static void main(String args[]) {
ServerSocket servsock = null;
Socket sock;
OutputStream out;
BufferedReader in;
FileInputStream infile=null;
int buff_size = 1024;///
byte buff[] =new byte[buff_size];
boolean cont =true;
int i; // loop counter
int backlog=300; int htpp=8080;///
try{
servsock = new ServerSocket(htpp, backlog);///
while(true){
sock = servsock.accept();
System.out.println("Connection Request"+(sock.getInetAddress()).getHostName());
try {
infile=new FileInputStream(args[0]);
} catch(Exception e){
System.out.println("1");///
System.out.println(e);///
System.exit(1);
}
in=new BufferedReader(new InputStreamReader(sock.getInputStream()));;
out=sock.getOutputStream();
for(i=0;i<2;++i) {///
in.readLine();
}///
cont=true;
while(cont) {
try {
int n=infile.read(buff);
System.out.println("4");///
System.out.println(buff);///
out.write(buff,0,n);
} catch(Exception e){
System.out.println("2:");///
System.out.println(e);///
cont=false;
}
}
sock.close();
infile.close();
}
} catch(IOException e){
System.out.println("3");///
System.out.println(e);///
System.exit(1);
}
}
}
error 1
Connection Request localhost
1
java.io.FileNotFoundException: index.html (No such file or directory)
Ich habe keine index.html-Datei erstellt.
error 2
2
Connection Request localhost
2
java.net.SocketException: Broken pipe (Write failed)
error 2-1
Connection Request localhost
2
java.lang.ArrayIndexOutOfBoundsException: len == -1 off == 0 buffer length == 1024
Ich habe Wireshark gestartet, bevor ich gelaufen bin.
Bei Wireshark werden bis zu </ html> gesendet und empfangen. Die Anzeige des Browsers (Safari Version 11.0.1 (12604.3.5.1.1)) ist
Oh, es ist http / 0.9, also ist es nicht gut. Ich suche nach einer Möglichkeit, es unter http / 1.1 zu senden.
error 3
3
java.net.BindException: Address already in use (Bind failed)
Es scheint, dass er den nächsten gestartet hat, ohne den zuvor gestarteten phttpd zu beenden.
$ ps -ax | grep phppd
10427 ?? 0:08.61 /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Users/administrator/eclipse-workspace/phppd/bin phppd index.html
10714 ?? 0:07.68 /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:51095 -Dfile.encoding=UTF-8 -classpath /Users/administrator/eclipse-workspace/phppd/bin phppd index.html
13190 ttys000 0:00.00 grep phppd
$ su Administrator
Password:
$ kill -9 10427
$ kill -9 10714
Warum arbeiten beide? Zu anderen Zeiten konnte ich das nächste Mal nicht starten, daher gibt es nur einen.
<Dieser Abschnitt wird gerade geschrieben. Ich werde es eins nach dem anderen hinzufügen. > "TCP / IP JAVA-Netzwerkprogrammierung aus den Grundlagen verstanden" Kompiliert mit Eclipse. Debuggen mit Wireshark. https://qiita.com/drafts/14519536b827fdadb32e/ "Empfohlen für diejenigen, die JAVA noch nie berührt haben. Es ist auch nach 20 Jahren noch gültig." Seit ich das geschrieben habe, muss ich es reparieren, damit es funktioniert.
Bestanden den Netzwerkspezialisten des Information Processing Engineer Examination Network https://qiita.com/kaizen_nagoya/items/407857392ca5c5677ee4
Kommunikationsemulator-Port https://qiita.com/drafts/ce505bbea4229b83e93b
Macintosh-kompatibel "TCP / IP-Analysator-Erstellung und Paketanalyse aus den Grundlagen Linux / FreeBSD-kompatibel" Tomohiro Odaka Ohm https://qiita.com/kaizen_nagoya/items/517411b42fc5ceabd581
Recommended Posts