phttpd: pseudo démon de protocole de transfert d'hyper texte (traitement pseudo HTTP)
"Programmation réseau TCP / IP JAVA comprise depuis les bases" Compilé avec Eclipse. Déboguer avec 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)
Je n'ai pas créé de fichier index.html.
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
J'ai lancé Wireshark avant de courir.
En regardant Wireshark, il envoie et reçoit jusqu'à </ html>. L'affichage du navigateur (Safari version 11.0.1 (12604.3.5.1.1)) est
Oh, c'est http / 0.9, donc ce n'est pas bon. Je cherche un moyen de l'envoyer à http / 1.1.
error 3
3
java.net.BindException: Address already in use (Bind failed)
Il semble qu'il ait commencé le suivant sans terminer le phttpd précédemment lancé.
$ 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
Pourquoi les deux fonctionnent-ils? À d'autres moments, je ne pouvais pas commencer la prochaine fois, donc il n'y en a qu'un.
<Cette section est sur le point d'être écrite. Je vais l'ajouter un par un. > "Programmation réseau TCP / IP JAVA comprise depuis les bases" Compilé avec Eclipse. Déboguer avec Wireshark. https://qiita.com/drafts/14519536b827fdadb32e/ "Recommandé pour ceux qui n'ont jamais touché à JAVA. Il est toujours valable après 20 ans." Depuis que j'ai écrit ça, je dois le réparer pour que ça marche.
Réussir le spécialiste du réseau d'examen d'ingénieur en traitement de l'information https://qiita.com/kaizen_nagoya/items/407857392ca5c5677ee4
Port d'émulateur de communication https://qiita.com/drafts/ce505bbea4229b83e93b
Compatible Macintosh "Création d'analyseurs TCP / IP et analyse de paquets comprise depuis les bases Compatible Linux / FreeBSD" Tomohiro Odaka Ohm https://qiita.com/kaizen_nagoya/items/517411b42fc5ceabd581
Recommended Posts