服务器端
package com.xbc.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器
*/
public class Server {
public static void main(String[] args) {
BufferedReader bf = null;
PrintWriter pw = null;
try {
ServerSocket serverSocket = new ServerSocket(2000);
Socket accept = serverSocket.accept(); //服务器接受
bf = new BufferedReader(new InputStreamReader(accept.getInputStream()));//获取链接的输入流
pw = new PrintWriter(accept.getOutputStream(),true); //获取输出流
String readLine = bf.readLine();//获取接收的数据
System.out.println("readLine = " + readLine);
pw.println("这是【服务器】发送回来的数据");//发送相同的数据给客户端
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
bf.close();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端
package com.xbc.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* 客户端
*/
public class Client {
public static void main(String[] args) {
BufferedReader bf = null;
PrintWriter pw = null;
try {
Socket localhost = new Socket("localhost", 2000);
//获取输入输出流
bf = new BufferedReader(new InputStreamReader(localhost.getInputStream()));
pw = new PrintWriter(localhost.getOutputStream(),true);
//向服务器发送数据
pw.println("这是【客户端】发送的数据!");
String s = null;
while(true){
s = bf.readLine();
if (s!=null){
break;
}
}
System.out.println("s=:"+s);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
pw.close();
bf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
运行结果