私が学んだ主な手順
最初のステップ: 特定のポート (4800 など) を使用して新しいソケット オブジェクトを作成します
2 番目のステップ: システム入力デバイスを使用して BufferedReader オブジェクトを構築します。これは、システム入力デバイスによって文字入力を受け取るために使用されます。システムキーボード
3 番目のステップ: ソケット オブジェクトを使用して出力ストリームを取得し、PrintWriter を構築します
ステップ 4: ソケット オブジェクトを使用して入力ストリームを取得し、対応する BufferedReader オブジェクトを構築します。 このオブジェクトは、から送信された情報を受信するために使用されます。私の理解では、ソケットを閉じます。最初に開くと後で閉じられ、最後にソケットが閉じられます。
以下はクライアント コードの実装です:
package com.fan.socket;
import java.io.*;
import java.net.Socket;
public class SocketClient {
try{
System.out.println("client start...");
//の4800ポートへこのマシンは顧客リクエストを発行します
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//システムの標準入力デバイスから BufferedReader オブジェクトを構築します
PrintWriter write=new PrintWriter(socket.getOutputStream());
//Socket オブジェクトから構築 出力ストリームを取得し、PrintWriter オブジェクトを構築します
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//Socket オブジェクトから入力ストリームを取得し、対応する BufferedReader を構築しますobject
String readline;
readline=br .readLine(); //システムの標準入力から文字列を読み込みます
while(!readline.equals("end")){
//標準入力から読み込んだ文字列が"end"、ループを停止します
write.println(readline);
//システムの標準入力から読み取った文字列をServer2に出力します
write.flush();
//サーバーが文字列を受信できるように出力ストリームを更新しますすぐに
System.out.println("Client:"+readline);
//読み取った文字列をシステム標準出力に出力します
System.out.println("Server:"+in.readLine());
//サーバーから文字列を読み取り、標準出力に出力します
readline=br.readLine() //システムの標準入力から文字列を読み取ります
} //ループを継続します
write.close();出力ストリーム
in.close(); // ソケット入力ストリームを閉じる
socket.close(); // ソケットを閉じる
}catch(Exception e) {
System.out.println("can not listen:" +e);/ /エラー、エラーメッセージを出力します
}
}
}
サーバーコード実装:
package com.fan.socket;
import java.io.*;
import java.net.ServerSocket;import java.net.Socket;
public class SocketService {
public static void main(String[] args) throws IOException{SocketServiceソケットService = new SocketService();
socketService.oneServer( );
}
public void oneServer(){
try{
ServerSocket server=null;
try{
server=new ServerSocket(4800);
System.out.println("サーバーの起動は正常です...") ;
// ポート 4800 でクライアントリクエストをリッスンするための ServerSocket を作成します
}catch(Exception e) {
System.out.println("can not listen to:"+e);
//エラー、エラーメッセージを出力します
}
Socket ソケット=null ;
try{
socket=server.accept();
//accept() を使用して顧客のリクエストをブロックし、待機します。顧客の
//リクエストが到着すると、Socket オブジェクトが生成され、続行されます。実行するには
}catch(Exception e) {
System.out.println("Error."+e);
//エラー、エラー メッセージを出力します
}
String line;
BufferedReader in=new BufferedReader(new InputStreamReader(socket .getInputStream()));
//Socket オブジェクトは入力ストリームを取得し、対応する BufferedReader オブジェクトを構築します
PrintWriter Writer=new PrintWriter(socket.getOutputStream());
//Socket オブジェクトから出力ストリームを取得し、 PrintWriter オブジェクトを構築します
BufferedReader br=new BufferedReader(new InputStreamReader( System.in));
//システム標準入力デバイスから BufferedReader オブジェクトを構築します
System.out.println("Client:"+in.readLine() );
//クライアントから読み取った内容を標準出力に出力します String
line=br.readLine();
//標準入力から文字列を読み込みます
while(!line.equals("end")){
//文字列が「end」の場合、ループを停止します
writer.println(line);
//文字列をクライアントに出力します
writer.flush();
//クライアントが受信できるように出力ストリームを更新しますstring instant
System.out.println("Server :"+line);
//読み取った文字列をシステム標準出力に出力します
System.out.println("Client:"+in.readLine());
/ /クライアントから文字列を読み取り、標準出力に出力します
line=br.readLine();
//システム標準入力から文字列を読み取ります
} //ループを継続します
writer.close(); //ソケットの出力ストリームを閉じる
in.close (); //ソケットの入力ストリームを閉じる
socket.close(); //サーバーソケットを閉じる
}catch(Exception e); {//エラー、エラー メッセージを出力します
System.out .println("Error."+e);
}
}
}