Java通信プログラムの作成
2022年7月5日今回はJavaを利用した通信プログラムを作成していきます。
まずは以下の動画のように、サーバーサイドのプログラムを記述します。
つづけて、クライアントプログラムを作成し、クライアントからの接続要求に対し、サーバー側がacceptし、メッセージをクライアント側に送信します。
動画は以下です。
上記の動画は、サーバーからクライアントにメッセージを送信しましたが、その逆で、クライアントからサーバーにメッセージを送信してみましょう。
動画は以下です。
プログラムは以下のとおりです。
●サーバーサイドのプログラム
import java.net.*;
import java.io.*;
class TestTushin_server{ //192.168.0.19
public static void main(String args[]) throws IOException{
ServerSocket server=null; //サーバーのソケットを作成
Socket client=null;
server=new ServerSocket(1234);
client=server.accept(); //クライアントの接続要求を受付
System.out.println(“接続を受け付けました”);
PrintStream sp_out=new PrintStream(client.getOutputStream());
sp_out.println(“サーバーからデータを送信しました”);
BufferedReader sb_in;
sb_in=new BufferedReader(new InputStreamReader(client.getInputStream()));
System.out.println(sb_in.readLine());
}
}
●クライアント側のプログラム
import java.net.*;
import java.io.*;
class TestTushin_client{
public static void main(String args[]) throws IOException{
Socket tushin;
tushin=new Socket(“192.168.0.*”,1234);//ここのIPアドレスはipconfigでチェック
BufferedReader b_in;
b_in=new BufferedReader(new InputStreamReader(tushin.getInputStream()));
String line;
line=b_in.readLine();
System.out.println(line);
PrintStream p_out=new PrintStream(tushin.getOutputStream());
p_out.println(“クライアントからデータを送信しました”);
}
}
最後に、相互に繰り返しメッセージを送受信するようプログラムを変更します。
以下、プログラムのソースになります。
●サーバー側のプログラムを以下のように追加します。
String line;
while(true){
line=sb_in.readLine();
if(line.equals("bye")){ break; }
sp_out.println("ok");
System.out.println(line);
}
System.out.println("通信終了");
sp_out.close();
sb_in.close();
server.close();
client.close();
●つづけてクライアント側のプログラムを以下のように追加します。
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String data;
while(true){
data=br.readLine();
p_out.println(data);
if(data.equals("bye")){ break; }
}
System.out.println("通信終了");
b_in.close();
p_out.close();
tushin.close();