PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のスキルアップサイトです

岐阜のパソコン教室「パソコンスクール・テルン」

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();