知识补充:源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 与