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 }