java 26 - 8 网络编程之 TCP协议的练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 26 - 8 网络编程之 TCP协议的练习相关的知识,希望对你有一定的参考价值。

TCP练习:

1、客户端键盘录入,服务器输出文本文件

 

  客户端代码:

 1 public class ClientDemo {
 2     public static void main(String[] args) throws IOException {
 3 
 4         // 创建socket对象
 5         Socket s = new Socket("172.19.12.233", 10010);
 6 
 7         // 创建键盘输入流,用转换流包装成字符流
 8         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 9 
10         // 把通道中的字节流用转换流包装成字符流
11         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
12                 s.getOutputStream()));
13         
14         //读取键盘输入的数据,并传输到服务器端
15         String line = null;
16         while((line = br.readLine()) != null){
17             //设定个关闭键盘的命令
18             if(line.equals("esc")){
19                 break;
20             }
21             bw.write(line);
22             bw.newLine();
23             bw.flush();
24         }
25         //释放资源
26         s.close();
27         
28     }
29 }

 

  服务器代码:

 1 public class ServerDemo {
 2     public static void main(String[] args) throws IOException {
 3 
 4         // 创建ServerSocket对象,监听
 5         ServerSocket ss = new ServerSocket(10010);
 6 
 7         // 创建socket对象
 8         Socket s = ss.accept();
 9 
10         // 把通道中的字节流包装成字符流
11         BufferedReader br = new BufferedReader(new InputStreamReader(
12                 s.getInputStream()));
13 
14         // 封装文件目录
15         BufferedWriter bw = new BufferedWriter(new FileWriter("TCP.txt"));
16 
17         // 把读取到的数据写入到文件中
18         String line = null;
19         while ((line = br.readLine()) != null) {
20             bw.write(line);
21             bw.newLine();
22             bw.flush();
23         }
24 
25         // 释放资源
26         s.close();
27         bw.close();
28 
29     }
30 }

 

2、客户端文本文件,服务器输出到控制台

  

  客户端代码:

 1 public class ClientDemo {
 2 
 3     public static void main(String[] args) throws IOException, IOException {
 4 
 5         // 创建socket传送对象
 6         Socket s = new Socket("172.19.12.233", 10010);
 7 
 8         // 封装文本文件,字符流读取里面的数据
 9         BufferedReader br = new BufferedReader(new FileReader("InetAddressDemo.java"));
10         // 封装通道里的字节流为字符流
11         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
12                 s.getOutputStream()));
13 
14         // 把读取到的数据输出到服务器端
15         String line = null;
16         while ((line = br.readLine()) != null) {
17             bw.write(line);
18             bw.newLine();
19             bw.flush();
20         }
21         
22         //释放资源
23         s.close();
24         br.close();
25     }
26 }

 

    服务器代码:

 1 public class ServerDemo {
 2     public static void main(String[] args) throws IOException {
 3 
 4         // 创建ServerSocket对象,监听
 5         ServerSocket ss = new ServerSocket(10010);
 6 
 7         // 创建socket对象
 8         Socket s = ss.accept();
 9 
10         // 把通道中的字节流包装成字符流
11         BufferedReader br = new BufferedReader(new InputStreamReader(
12                 s.getInputStream()));
13 
14         // 接收客户端发来都数据
15         String line = null;
16         while ((line = br.readLine()) != null) {
17             System.out.println(line);
18         }
19 
20         //释放资源
21         s.close();
22 
23     }
24 }

 

 

3、客户端读取文本文件,服务器输出文本文件

  

  客户端的代码

 

 1 public class ClientDemo {
 2     public static void main(String[] args) throws IOException {
 3 
 4         // 创建Socket对象
 5         Socket s = new Socket("172.19.12.233", 10010);
 6 
 7         // 封装文件目录
 8         BufferedReader br = new BufferedReader(new FileReader(
 9                 "InetAddressDemo.java"));
10 
11         // 把通道内的字节流包装成字符流
12         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
13                 s.getOutputStream()));
14 
15         // 获取文件中的数据,并输出给服务器
16         String line = null;
17         while ((line = br.readLine()) != null) {
18 
19             bw.write(line);
20             bw.newLine();
21             bw.flush();
22         }
23         
24         s.close();
25         br.close();
26 
27     }
28 }

 

 

  服务器的代码:

 1 public class ServerDemo {
 2     public static void main(String[] args) throws IOException {
 3 
 4         // 创建ServerSocket对象,监听
 5         ServerSocket ss = new ServerSocket(10010);
 6 
 7         // 创建socket对象
 8         Socket s = ss.accept();
 9 
10         // 把通道内的字节流包装成字符流
11         BufferedReader br = new BufferedReader(new InputStreamReader(
12                 s.getInputStream()));
13 
14         // 封装文件目录
15         BufferedWriter bw = new BufferedWriter(new FileWriter("TCPto.txt"));
16 
17         // 获取数据,并输出到文件中
18         String line = null;
19         while ((line = br.readLine()) != null) {
20                 bw.write(line);
21                 bw.newLine();
22                 bw.flush();
23         }
24         
25         //释放资源
26         s.close();
27         bw.close();
28     }
29 }

 

以上是关于java 26 - 8 网络编程之 TCP协议的练习的主要内容,如果未能解决你的问题,请参考以下文章

Java 网络编程 之 TCP协议

JAVA高并发网络编程之TCP和UDP协议

Java 网络编程TCP协议之发送数据和接收数据的详解

java学习笔记之网络编程

Java网络编程编程之TCP编程和UDP编程

java后台面试之计算机网络问题集锦