はじめに
今回では、Java通信APIの使い方を簡単にまとめてみます。まずはSocketの使い方を紹介してみましょう。
Socketは元々のjavaの通信APIの一つです。一般的に、tcp(udp?)コネクションをベースに、サーバ側もクライアントも通信できます。
ServerSocket(サーバ側)の使い方
以下のソースの通り、サーバを作ろう。
-
通信用のServerSocketを作る
-
クライアントとのコネクションを取る
-
ストリームを取ってクライアントからのデータ情報を読み込む
-
ストリームを取ってクライアントへデータ情報を書き出す
Server.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(6666);
System.out.println("server start....");
Socket s = serverSocket.accept();
// ログ出力
System.out.println("client:"+s.getInetAddress().getLocalHost()+"access successed");
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//クライアントからのデータ情報を読み込む
String mess = br.readLine();
// ログ出力
System.out.println("client:"+mess);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//クライアントへデータ情報を書き出す
bw.write(mess+"\n");
bw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Socket(クライアント側)の使い方
-
Socketのインスタンスを作ってIPとPortを設定
-
ストリームのインスタンスを取る
-
サーバへ送信
-
サーバからの返信を読み込
Client.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket s = new Socket("127.0.0.1",6666);
//ストリームのインスタンスを取る
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
//サーバへデータ情報を送信
bw.write("client -> server:hello server! \n");
bw.flush();
//サーバからの返信を読み込む
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String mess = br.readLine();
// ログ出力
System.out.println("server:"+mess);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
最後に
最後まで読んでいただき、ありがとうございます。
今度はHttpURLconnectionの使い方をまとめます。