基于java.net包,实现一个简单的服务端和客户端,客户端只管发,服务端只管收
缺点:服务端只能处理一个客户端的请求,因为服务端是单线程的。一次只能与一个客户端进行消息通信
服务端:
public class Server { public static void main(String[] args) throws Exception { System.out.println("==服务器的启动=="); // 1.监听端口 ServerSocket serverSocket = new ServerSocket(8888); //2.等待接收客户端的连接,得到一个端到端的Socket管道 Socket socket = serverSocket.accept(); //3.从Socket管道中得到一个字节输入流。 InputStream is = socket.getInputStream(); //4.把字节输入流包装成自己需要的流进行数据的读取。 BufferedReader br = new BufferedReader(new InputStreamReader(is)); //5.循环读取数据并打印到屏幕 String line; while ((line = br.readLine()) != null) { System.out.println("收到:" + line); } } }
客户端:
public class Client { public static void main(String[] args) throws Exception { System.out.println("==客户端的启动=="); // 1.创建一个Socket的通信管道,请求与服务端的端口连接。 Socket socket = new Socket("127.0.0.1", 8888); // 2.从Socket通信管道中得到一个字节输出流。 OutputStream os = socket.getOutputStream(); // 3.把字节流改装成自己需要的流进行数据的发送 PrintStream ps = new PrintStream(os); // 4.开始发送消息 Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String msg = sc.nextLine(); ps.println(msg); ps.flush(); } } }
标签:java,Socket,编程,System,println,new,服务端,客户端 From: https://www.cnblogs.com/wangbin2188/p/17162874.html