、ソケットプログラミング
ネットワークプログラミングでは、ほとんどがソケットで使用しています。おなじみの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(); } } }
その後、その後、最初のサーバーの実装、および、それにクライアントコードを実行します。これは、ほんの少しのケースで、どのような欠陥、アドバイスしてください!