package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
* 第10题:使用TCP协议完成一个客户端一个服务器。
* 客户端从键盘输入读取一个字符串,发送到服务器。
* 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
* @author ***
*/
public class Test10 {
//服务器端
public static void main(String[] args){
ServerSocket ss = null;
Socket s = null;
try {
ss = new ServerSocket(60000);//创建socket对象
s =ss.accept();
InputStream is = s.getInputStream();//获取输入流
InputStreamReader isr = new InputStreamReader(is);
BufferedReader bs = new BufferedReader(isr);//从键盘获取输入流到缓冲区
String str = bs.readLine();
System.out.println(str);//服务器本地输出
OutputStream os = s.getOutputStream();//获取输出流
PrintWriter pw = new PrintWriter(os);//创建输出流
pw.println(str.toUpperCase());//反转字符串返回到客户端
pw.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(ss!=null)
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class client{
//客户端
public static void main(String[] args){
Socket s=null;
try {
Scanner input = new Scanner (System.in);//创建Scanner输入流,input对象。
System.out.println("请输入:");
String str = input.next();
s = new Socket("127.0.0.1",60000);
OutputStream os = s.getOutputStream();//获取输出流
PrintWriter pw = new PrintWriter(os);//创建输出流
pw.println(str);
pw.flush();
InputStream is =s.getInputStream();//获取输入流
InputStreamReader isr = new InputStreamReader(is);//创建输入流
BufferedReader br = new BufferedReader(isr);//从服务器获得输入流到缓冲区
String string = br.readLine();//反转字符创
System.out.println(string);//输出结果
} catch (Exception e) {
e.printStackTrace();
}finally{
if(s!=null)
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
|
|