Java网络编程

TCP通信分析图解 
1. 服务端启动,创建ServerSocket对象,等待连接。 Socket client = new Socket("127.0.0.1", 6666); ServerSocket server = new ServerSocket(6666); 
2. 客户端启动,创建Socket对象,请求连接。 
3. 服务端接收连接,调用accept方法,并返回一个Socket对象。 
4. 客户端Socket对象,获取OutputStream,向服务端写出数据。 
5. 服务端Scoket对象,获取InputStream,读取客户端发送的数据
6. 服务端Socket对象,获取OutputStream,向客户端回写数据。 
7. 客户端Scoket对象,获取InputStream,解析回写数据。 
8. 客户端释放资源,断开连接。
代码:

客户端:
 1 public class ClientTest {
 2     public static void main(String[] args) throws IOException {
 3 //        1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号
 4         Socket socket = new Socket("127.0.0.1",8080);
 5 //        2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
 6         OutputStream outputStream = socket.getOutputStream();
 7 //         3.使用网络字节输出流OutputStream对象中的方法write,给服务器发送数据
 8         outputStream.write("请服务器接收".getBytes());
 9 //         4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
10         InputStream inputStream = socket.getInputStream();
11 //        5.使用网络字节输入流InputStream对象中的方法read,读取服务器回写的数据
12         byte[] bytes =new byte[1024];
13         int len=0;
14        while ((len=inputStream.read(bytes))!=-1){
15            System.out.println(new String(bytes,0,len));
16        }
17 //         6.释放资源(Socket)
18         inputStream.close();
19         outputStream.close();
20         socket.close();
21     }
22 }
服务端:
 1 public class ServerTest {
 2     public static void main(String[] args) throws IOException {
 3 //        1.创建服务器ServerSocket对象和系统要指定的端口号
 4         ServerSocket serverSocket = new ServerSocket(8080);
 5 //        2.使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
 6         Socket accept = serverSocket.accept();
 7 //        3.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
 8         InputStream inputStream = accept.getInputStream();
 9 //        4.使用网络字节输入流InputStream对象中的方法read,读取客户端发送的数据
10        byte[] bytes =new byte[1024];
11        int len=inputStream.read(bytes);
12         System.out.println(new String(bytes,0,len));
13 //        5.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
14         OutputStream outputStream = accept.getOutputStream();
15 //        6.使用网络字节输出流OutputStream对象中的方法write,给客户端回写数据
16         outputStream.write("获得客户端信息".getBytes());
17 //        7.释放资源(Socket,ServerSocket)
18         outputStream.close();
19         inputStream.close();
20         accept.close();
21         serverSocket.close();
22     }
23 }

 



posted @ 2021-09-24 11:59  金涛骇浪  阅读(25)  评论(0编辑  收藏  举报