TCPプロトコルの応用データ反転
13249 ワード
需要:プログラムを編纂して下さい、それぞれTCPプロトコルを使ってデータを伝送するクライアントとサーバーの端を模擬して、クライアントはキーボードの入力したテキストのデータを取得してサーバーの端に発送して、サーバーの端はデータを取得した後に、テキストのデータを反転して、それからクライアントにフィードバックして、クライアントは反転したデータをコンソールに印刷します.クライアント・コンソールに表示される実行効果は、次のとおりです.テキストを入力してください.helloサーバが戻ります.ollehテキストを入力してください.socketサーバが戻ります.tekcosテキストを入力してください.overアクセスを終了します.
クライアント:
サーバ側:
クライアント:
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws IOException {
Socket s = new Socket(InetAddress.getLocalHost(), 10089);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println(" :");
String s1 = sc.nextLine();
if (s1.equals("over")) {
System.out.println(" ");
break;
}
bw.write(s1);
bw.newLine();
bw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String s2 = br.readLine();
System.out.println(" :");
System.out.println(s2);
}
s.close();
}
}
サーバ側:
package Socket.Test03;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.rmi.server.ServerCloneException;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(10089);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
StringBuilder sb = new StringBuilder();
StringBuilder s1 = sb.append(line);
StringBuilder s2 = s1.reverse();
String s3 = s2.toString();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(s3);
bw.newLine();
bw.flush();
}
s.close();
}
}