网络编程之TCP

知识补充:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。

TCP编程的实现步骤:服务器端:1.通过ServletSocket创建绑定到指定客户端的套接字。假设该对象名为servler

               2.侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。server.accept(),返回Socket对象

               3.通过socket对象调用输入输出流。就可以向客户端输出信息

          客户端:1.连接主机名。InetAddress net = InetAddress.getByName("192.168.11.229");

              2.主机对象net和端口号连接。Socket socket = new Socket(net,7889);

              3.通过socket获取输入输出流

 1 package myInetaddress;
 2 import java.io.FileOutputStream;
 3 import java.io.InputStream;
 4 import java.io.OutputStream;
 5 import java.net.InetAddress;
 6 import java.net.ServerSocket;
 7 import java.net.Socket;
 8 import java.net.UnknownHostException;
 9 
10 import org.junit.Test;
11 public class MyInetAddress7 {
12 
13     @Test
14     public void server() throws Exception{
15         //服务器获取端口号
16         ServerSocket server = new ServerSocket(7899);
17         //监视端口
18         Socket socket = server.accept();
19         //获取流
20          InputStream is = socket.getInputStream();
21         byte[] b = new byte[10];
22         int len=0;
23         while((len = is.read(b))!=-1){
24             System.out.println(new String(b,0,len));
25         }
26         socket.shutdownInput();
27         is.close();
28         server.close();
29         socket.close();
30     }
31     @Test
32     public void clicen() throws Exception{
33         InetAddress net = InetAddress.getByName("192.168.11.229"); 
34         Socket socket = new Socket(net,7899);
35         FileOutputStream os = (FileOutputStream)socket.getOutputStream();
36         os.write("你是是的看深刻的了深刻扫鹅鹅鹅鹅鹅鹅饿有意义有意义与".getBytes());
37         os.close();
38         socket.close();
39     }
40 
41 }

输出结果:

     1 你是是的看 2 深刻的了深 3 刻扫鹅鹅鹅 4 鹅鹅鹅饿有 5 意义有意义 6 

原文地址:https://www.cnblogs.com/huxuebing/p/5762631.html