Javaネットワーク通信基本プログラミング(必見編)
方式一:同期ブロック方式(BIO):
サーバ端(Server):
Server:
非同期ブロック(AIO)
以上のJavaネットワーク通信の基本プログラム(必見編)は、小編集が皆さんに提供した内容のすべてを共有しています。参考にしていただければと思います。どうぞよろしくお願いします。
サーバ端(Server):
package com.ietree.basicskill.socket.mode1;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
*/
public class Server {
//
final static int PORT = 8765;
public static void main(String[] args) {
ServerSocket server = null;
try {
server = new ServerSocket(PORT);
System.out.println("Server start......");
//
Socket socket = server.accept();
//
new Thread(new ServerHandler(socket)).start();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(server != null){
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
server = null;
}
}
}
受信された要求(Server Handler)は、マルチスレッドを用いて処理される。
package com.ietree.basicskill.socket.mode1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ServerHandler implements Runnable {
private Socket socket;
public ServerHandler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
out = new PrintWriter(this.socket.getOutputStream(), true);
String body = null;
while (true) {
body = in.readLine();
if(body == null){
break;
}
System.out.println("Server: " + body);
out.println(" 。");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(out != null){
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(socket != null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
socket = null;
}
}
}
クライアント:
package com.ietree.basicskill.socket.mode1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
*
*/
public class Client {
final static String ADDRESS = "127.0.0.1";
final static int PORT = 8765;
public static void main(String[] args) {
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null;
try {
socket = new Socket(ADDRESS, PORT);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
//
out.println(" ......");
String response = in.readLine();
System.out.println("Client: " + response);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(out != null){
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(socket != null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
socket = null;
}
}
}
プログラム出力:Server:
Server start......
Server: ......
Client:
Client: 。
同期非閉塞(NIO)非同期ブロック(AIO)
以上のJavaネットワーク通信の基本プログラム(必見編)は、小編集が皆さんに提供した内容のすべてを共有しています。参考にしていただければと思います。どうぞよろしくお願いします。