復習13.ネットワークプログラミング
2517 ワード
C/S Client/Serverとはクライアントとサーバー構造作成プログラムQQ迅雷などのソフトウェアB/S Brower/Serverブラウザプログラムがデータベースサーバーに接続することを指す.
ネットワーク通信プロトコル:TCP/IPインターネット相互接続プロトコルCMD:ipconfigが本機IPを検索する
ポート番号重複不可論理ポートソフトウェアクエリーポート番号1システム自動割当2プロアクティブリクエスト
範囲0-65535 1024間システムポートで使用できないmysql:3606 Oracle:1521 Tomcat:8080
サーバ:ストリームがないクライアントのインスタンスは、クライアントのIOストリームとクライアントを使用してインタラクティブになります.
ソケット:IPアドレスとポート番号を含むネットワーク単位クライアントとサービス側のインタラクションSocketで提供されているネットワークストリームを使用してサーバ側を自分で作成することはできません.複数のクライアントとサービス側のインタラクション(マルチスレッドテクノロジーを使用)
htmlサーバ:
ネットワーク通信プロトコル:TCP/IPインターネット相互接続プロトコルCMD:ipconfigが本機IPを検索する
ポート番号重複不可論理ポートソフトウェアクエリーポート番号1システム自動割当2プロアクティブリクエスト
範囲0-65535 1024間システムポートで使用できないmysql:3606 Oracle:1521 Tomcat:8080
サーバ:ストリームがないクライアントのインスタンスは、クライアントのIOストリームとクライアントを使用してインタラクティブになります.
ソケット:IPアドレスとポート番号を含むネットワーク単位クライアントとサービス側のインタラクションSocketで提供されているネットワークストリームを使用してサーバ側を自分で作成することはできません.複数のクライアントとサービス側のインタラクション(マルチスレッドテクノロジーを使用)
htmlサーバ:
/**
* @ClssName HtmlServer
* @Autor Yu
* @Description TODO
* @Date 2019/3/15 16:35
* Version 1.0
* 172.20.35.60
*/
public class HtmlServer {
public static void main(String[] args) throws IOException {
//
ServerSocket serverSocket = new ServerSocket(10003);
// html
//
while (true) {
//
Socket socket = serverSocket.accept();
new Thread(()-> {
try {
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// GET /net/index.html HTTP/1.1
String line = br.readLine();
//
String[] s = line.split(" ");
// /
String htmlPath = s[1].substring(1);
// html
FileInputStream fis = new FileInputStream(htmlPath);
//
OutputStream os = socket.getOutputStream();
//
os.write("HTTP/1.1 200 OK".getBytes());
os.write("Content-Type:text/html\r
".getBytes());
os.write("\r
".getBytes());//
//
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
os.write(bytes, 0, len);
}
//
fis.close();
//
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
}
}