Socket服务端与客户端互发数据

服务端:

 1 package com.pkg1;
 2 
 3 import java.io.*;
 4 import java.net.*;
 5 
 6 public class NetServer2 {
 7     static final int PORT = 8888;
 8     
 9     public static void main(String[]args){
10         try {
11             //create server socket
12             ServerSocket svrSocket = new ServerSocket(PORT);
13             
14             //listen client
15             Socket socket = svrSocket.accept();
16             
17             //prepare client socket input stream reader
18             InputStreamReader reader = new InputStreamReader(socket.getInputStream());
19             BufferedReader bufReader = new BufferedReader(reader);
20             
21             //prepare server PrintWriter
22             PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
23             
24             //prepare console input stream reader
25             InputStreamReader conReader = new InputStreamReader(System.in);
26             BufferedReader bufConReader = new BufferedReader(conReader);
27             
28             while(true){
29                 //read client information
30                 System.out.println("wait for client data...");
31                 System.out.println("Server, receive : " + bufReader.readLine());
32                 
33                 //send information to client
34                 System.out.println("Please input data and send it to client...");
35                 writer.println(bufConReader.readLine());
36             }
37             
38         } catch (IOException e) {
39             e.printStackTrace();
40         }
41     }
42 }

客户端:

 1 package com.pkg1;
 2 
 3 import java.io.*;
 4 import java.net.*;
 5 
 6 public class NetClient2 {
 7     static final String IP = "127.0.0.1";
 8     static final int PORT = 8888;
 9     
10     public static void main(String[] args) {
11         
12         try {
13             //create socket connection
14             Socket socket = new Socket(IP, PORT);
15             
16             //prepare PrintWriter to send data to server
17             PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
18             
19             //prepare console input stream reader
20             InputStreamReader conReader = new InputStreamReader(System.in);
21             BufferedReader bufConReader = new BufferedReader(conReader);
22             
23             //prepare input stream reader to get data from server
24             InputStreamReader reader = new InputStreamReader(socket.getInputStream());
25             BufferedReader bufReader = new BufferedReader(reader);
26             
27             while(true){
28                 //send data to server
29                 System.out.println("Please input data and send it to server...");
30                 writer.println(bufConReader.readLine());
31                 
32                 //receive data from server
33                 System.out.println("wait for server data...");
34                 System.out.println("Client, receive : " + bufReader.readLine());
35             }
36             
37         } catch (Exception e) {
38             e.printStackTrace();
39         }
40     }
41 }
原文地址:https://www.cnblogs.com/guanhao/p/4928773.html