package socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @describe 服务端
* @author lxh
* @date 2018年3月20日
*/
public class SocketServer {
public static void main(String[] args) {
SocketServer server = new SocketServer();
server.oneServer();
}
public void oneServer() {
/*
* a)、创建ServerSocket对象绑定监听端口。
* b)、通过accept()方法监听客户端的请求。
* c)、建立连接后,通过输入输出流读取客户端发送的请求信息。
* d)、通过输出流向客户端发送请求信息。
* e)、关闭相关资源。
*/
try {
//1.创建ServerSocket对象并监听端口
ServerSocket server = null;
try {
server = new ServerSocket(5200);
System.out.println("服务器启动成功...");
} catch (Exception e) {
System.out.println("没有监听到"+e);
}
//2.调用accept()方法,等待客户端的连接
Socket socket = null;
try {
socket = server.accept();
} catch (Exception e) {
System.out.println("Error"+e);
}
//3.获取输入流,输出流,并读取客户端信息
String line;
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
//4.获取键盘输入流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("client:"+in.readLine());
line = br.readLine();
while(!line.equals("end")) {
out.println(line);
out.flush();
System.out.println("server"+line);
System.out.println("client"+in.readLine());
line = br.readLine();
}
//5.关闭资源
out.close();
in.close();
socket.close();
server.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* @describe 客戶端
* @author lxh
* @date 2018年3月20日
*/
public class SocketClient {
public static void main(String[] args) {
SocketClient client = new SocketClient();
client.call();
}
public void call() {
/*
* a)、创建Socket对象,指明需要连接的服务器的地址和端口。
* b)、建立连接后,通过输出流向服务器发送请求信息。
* c)、通过输入流获取服务器的响应信息。
* d)、关闭响应资源
*/
try {
//创建客户端Socket,制定服务器IP及端口
Socket socket = new Socket("192.163.20.87",5200);
System.out.println("客户端启动成功...");
//获取键盘输入流
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readLine;
readLine = br.readLine();
while(!readLine.equals("end")) {
out.println(readLine);
out.flush();
System.out.println("client:"+readLine);
System.out.println("server:"+in.readLine());
readLine = br.readLine();
}
out.close();
in.close();
socket.close();
} catch (Exception e) {
System.out.println("can not listen to:"+e);
}
}
}