Javaのソケットプログラミング、小さな例(注釈付き)

、ソケットプログラミング

  ネットワークプログラミングでは、ほとんどがソケットで使用しています。おなじみのQQのように、MSNは関連ソケット技術を使用しています。

第二に、ケース

 1.サーバー

  • ①ServerSocketオブジェクトを作成し、ポートをリスニングバインド
  • ②受け入れ()メソッドによって、クライアントの要求をリッスン
  • ③接続が確立された後、クライアントは、入力ストリームを介して読み取り要求情報を送信
  • クライアント・フローによって情報を対応④送信出力
  • ⑤閉じる関連リソース
    1  パッケージcn.kgc.sockettest.demo1。
    2  
    3  輸入 java.io. * ;
    4  インポートjava.net.ServerSocket。
    5  輸入のjava.net.Socket。
    6  
    7  / ** 
    8  *服务端
     9  *
     10  * @author 
    11  * @Create 2019年7月23日午後02時16分
     12  * * / 
    13  パブリック クラスサーバ{
     14      公共 静的 ボイドメイン(文字列[]引数){
     15          トライ{
     16              のServerSocketのServerSocket =新しい新しい ServerSocketを(8080 );
     17              のSystem.out.println( "サーバの起動が完了する...リスニングを開始!" );
     18              // オープンリスニング、クライアントへのアクセスを待っている
    19              ソケットソケット= serverSocket.acceptを();
     20              // 取得クライアントがサーバにデータを送信するための入力ストリームは、
    21ある              InputStream InputStreamは= ; Socket.getInputStream()
     22である             // 作成し、ストリームバッファ
    23は              BufferedReaderののBR = 新しい新しいをBufferedReader(新しい新しいInputStreamReaderの(InputStreamの));
     24              文字列情報= nullを25              しばらく((情報= br.readLine())!=ヌル){
     26である                  のSystem.out.println( "クライアントサーバーはここにある:" + 情報);
     27              }
     28              //は、クライアントへの応答
    29              のOutputStream OutputStreamを= ; Socket.getOutputStream()
     30              ここでは、「情報=サーバーは、私たちは「...あなたの要求情報処理された処理を受ける!;
     31である             。OutputStream.write(info.getBytes())
     32              outputStream.close();
     33である          } キャッチ(IOExceptionをE){
     34であります             e.printStackTrace();
     35          }
     36      }
     37 }

    2.クライアント

  • ①サーバのアドレスとポート番号に接続する必要性を示しているSocketオブジェクトを作成します
  • 接続が確立された後②、サーバーは、情報を要求したい出力ストリームを送信します
  • 入力ストリームが取得した③サーバ応答情報
  • ④応答リソースを閉じます
    パッケージcn.kgc.sockettest.demo1。
    
    輸入 java.io. * ;
    インポートのjava.net.Socket; 
    
    / ** 
     *客户端
     * 
     * @author 
     * @Create 2019年7月23日14時17分
     * * / 
    パブリック クラスのクライアント{
         公共の 静的な 無効メイン(文字列[] args)を{
             しようと{ 
                ソケットソケットは = 新しいソケット( "ローカルホスト"を、8080 )。
                OutputStreamのOutputStream = socket.getOutputStream()。
                文字列情報 = "你好啊!" //出力!
                OutputStream.write(info.getBytes()); 
                socket.shutdownOutput(); 
                // レスポンス受信サーバ 
                InputStream InputStreamは= Socket.getInputStream(); 
                BufferedReaderのBRのを = 新しい新しいをBufferedReader(新しい新しいInputStreamReaderの(InputStreamの));
                 ながら、((情報= !br.readLine())= NULL ){ 
                    するSystem.out.println( "受信したサーバ応答!" + インフォメーション); 
                } 
                // バッファフラッシュ
                )outputStream.flushを(; 
                outputStream.close(); 
                inputStream.close (); 
                Socket.close()。
            } キャッチ(IOExceptionをE){ 
                e.printStackTrace(); 
            } 
        } 
    }

    その後、その後、最初のサーバーの実装、および、それにクライアントコードを実行します。これは、ほんの少しのケースで、どのような欠陥、アドバイスしてください!

おすすめ

転載: www.cnblogs.com/Cavalry-/p/11233862.html