服务器端
public class Client {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws IOException{
//获得服务器端套接口
Socket serverSocket=new Socket("127.0.0.1",6666);
//通过Scanner获取键盘输入
Scanner keyInput=new Scanner(System.in);
System.out.println("Input side:");
//按行读取键盘输入
String strLine=keyInput.nextLine();
try {
//获得服务器输入流
OutputStream output=serverSocket.getOutputStream();
//获得服务器输出流
InputStream input=serverSocket.getInputStream();
PrintWriter printWriter=new PrintWriter(output,true);
printWriter.println(strLine);
BufferedReader bufReader=new BufferedReader(new InputStreamReader(input));
System.out.println(bufReader.readLine());
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
服务线程
public class ServerThread extends Thread{
//客户端套接端口
private Socket clientSocket;
//客户端输入流
private InputStream clientInput;
//客户端输出流
private OutputStream clientOutput;
/**
*
* @param socket
* @throws IOException
*/
public ServerThread(Socket socket)throws IOException{
this.clientSocket=socket;
this.clientInput=clientSocket.getInputStream();
this.clientOutput=clientSocket.getOutputStream();
this.start();
}
public void run(){
try {
//构造输入流缓存
BufferedReader bufReader=new BufferedReader(new InputStreamReader(clientInput));
//按行读取输入内容
String strLine=bufReader.readLine();
if("OVER".equalsIgnoreCase(strLine)){
//结束输入流
PrintWriter printWriter=new PrintWriter(clientOutput,true);
printWriter.println("OVER");
}else{
//输入正方形边长,并输出其边长和面积
double side=Double.parseDouble(strLine);
System.out.println("Side of Square Received : "+side);
double squareArea=side*side;
String str="Side: "+side+" Square:"+squareArea;
PrintWriter printWriter=new PrintWriter(clientOutput,true);
printWriter.println(str);
System.out.println("Finish sending to client!");
}
clientInput.close();
clientOutput.close();
clientSocket.close();
} catch (Exception e) {
e.printStackTrace();
}{
}
}
}
客户端
public class Client {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws IOException{
//获得服务器端套接口
Socket serverSocket=new Socket("127.0.0.1",6666);
//通过Scanner获取键盘输入
Scanner keyInput=new Scanner(System.in);
System.out.println("Input side:");
//按行读取键盘输入
String strLine=keyInput.nextLine();
try {
//获得服务器输入流
OutputStream output=serverSocket.getOutputStream();
//获得服务器输出流
InputStream input=serverSocket.getInputStream();
PrintWriter printWriter=new PrintWriter(output,true);
printWriter.println(strLine);
BufferedReader bufReader=new BufferedReader(new InputStreamReader(input));
System.out.println(bufReader.readLine());
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
先启动服务器端,再启动客户端,输入正方形边长后,服务器计算面积并返回客户端
启动服务器
启动客户端并输出边长得到结果
接收到边长后服务器显示