JavaSE-21.3.2【TCP通信程序练习1】

复制代码
 1 package day12.lesson3.p1;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.io.OutputStream;
 6 import java.net.Socket;
 7 
 8 /*
 9 3.3 TCP通信程序练习1
10     案例需求
11         客户端:发送数据,接受服务器反馈
12         服务器:收到消息后给出反馈
13     案例分析
14         客户端创建对象,使用输出流输出数据
15         服务端创建对象,使用输入流接受数据
16         服务端使用输出流给出反馈数据
17         客户端使用输入流接受反馈数据
18  */
19 public class ClientDemo {
20     public static void main(String[] args) throws IOException {
21         Socket socket = new Socket("MSI-YUBABY", 10000);
22 
23         OutputStream os = socket.getOutputStream();
24         os.write("hello, tcp".getBytes());
25 
26         InputStream is = socket.getInputStream();
27         byte[] bytes = new byte[1024];
28         int len = is.read(bytes); //接收服务器端的反馈信息
29         String data = new String(bytes, 0, len);
30         System.out.println("客户端:" + data);
31 
32         /*is.close();
33         os.close();
34         socket.close();*/
35         //这样写没有问题,但没有必要写is和os,因为is和os都是根据socket对象得到的,socket释放则依附于socket的其他也都释放了
36         socket.close();
37     }
38 }
复制代码
复制代码
 1 package day12.lesson3.p1;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.io.OutputStream;
 6 import java.net.ServerSocket;
 7 import java.net.Socket;
 8 
 9 public class ServerDemo {
10     public static void main(String[] args) throws IOException {
11         ServerSocket ss = new ServerSocket(10000);
12 
13         Socket socket = ss.accept();
14 
15         InputStream is = socket.getInputStream();
16         byte[] bytes = new byte[1024];
17         int len = is.read(bytes); //接收客户端发来的数据
18         String data = new String(bytes, 0, len);
19         System.out.println("服务器端:" + data);
20 
21         OutputStream os = socket.getOutputStream();
22         os.write("数据已收到".getBytes()); //给出反馈信息
23 
24         ss.close();
25     }
26 }
复制代码

 

posted @   yub4by  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示