用Socket实现客户端和服务器端的通信,要求客户发送数据后能够回显相同的数据
服务器端可以使用ServerSocket
客户端可以使用Socket
1、首先,创建一个名为Server.java的服务器端代码
package chuan;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author wyl
* @time 2018年6月7日上午8:55:41
*/
public class Server {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket server=new ServerSocket(2018);
Socket socket=server.accept();
//获取输入流
br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获取输出流
pw=new PrintWriter(socket.getOutputStream(),true);
//获取接收的数据
String s=br.readLine();
//发送相同的数据给客户端
pw.println(""+s);
} catch (Exception e) {
e.getStackTrace();
}finally {
try {
br.close();
pw.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
2、创建一个Client.java的客户端程序
package chuan;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* @author wyl
* @time 2018年6月7日上午9:01:49
*/
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br=null;
PrintWriter pw=null;
try {
Socket socket=new Socket("localhost", 2018);
//获取输入流和输出流
br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw=new PrintWriter(socket.getOutputStream(),true);
//向服务器端发送数据
pw.println("hello");
String s=null;
while(true){
s=br.readLine();
if (s!=null) {
break;
}
}
System.out.println(s);
} catch (Exception e) {
e.getStackTrace();
}finally {
try {
br.close();
pw.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
3、启动服务器端程序,在运行客户端程序,客户端将会把从服务器端转发过来的“hello”打印出来
服务器端,实现基本流程