1 package NetWork;
2
3 import java.io.InputStream;
4 import java.io.OutputStream;
5 import java.net.ServerSocket;
6 import java.net.Socket;
7
8 /*
9 * 演示TCP的传输的客户端和服务庙的互访
10 *
11 * 需求:客户端给出服务器发送数据 ,服务端收到信息后给客户端反馈信息
12 */
13
14 /*
15 * 客户端
16 */
17 public class Tcp2 {
18 public static void main(String[] args) throws Exception {
19 Socket socket = new Socket("192.168.1.101", 21101); // 建立连接
20 // 建立给服务器发送数据的输入流
21 OutputStream out = socket.getOutputStream(); // 获取输入流
22 out.write("我发过来了".getBytes()); // 将需要发送的数据使用.getBytes方法转换成字节流
23
24 // 建立服务器反馈过来的数据,并且将数据打印出来
25 InputStream in = socket.getInputStream();
26 byte[] buf = new byte[1024];
27 int len = in.read(buf);
28 System.out.println(new String(buf, 0, len));
29 }
30 }
31
32 class TcpServer2 {
33 public static void main(String[] args) throws Exception {
34 ServerSocket server = new ServerSocket(21101); // 建立服务
35
36 Socket socket = server.accept();// 获取连接
37
38 // 获取客户端的信息
39 System.out.println("ip:" + socket.getInetAddress().getHostAddress());
40
41 // 接收客户端发送过来的数据
42 InputStream in = socket.getInputStream();
43
44 byte[] buf = new byte[1024];// 定义字符串缓冲区
45
46 int len = 0;
47
48 while ((len = in.read(buf)) != -1) {
49 System.out.println(new String(buf, 0, len));
50 }
51
52 // 给客户端反馈信息
53 OutputStream out = socket.getOutputStream();
54 out.write("我收到了,".getBytes());
55
56 socket.close();// 关闭资源
57 }
58 }