Java高级编程十四:网络编程Scoket

86 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第十四章 网络编程

1. 网络通信协议

TCP

  • 使用TCP协议之前,需建立TCP链接,形成传输数据通道
  • 传输前采用**三次握手方式,点对点通信是安全可靠的**
  • TCP进行通信的两个应用进行分别是 客户端 、 服务器
  • 在连接过程中**可以进行大数据量的传输**
  • 传输完毕之后**需要释放已经建立的连接,效率低**

UDP

  • 将数据、源、目的封装成数据包,不需要建立连接

  • 每个数据包的大小限制在64K以内

  • 发送时不管对方是否准备好,接收方收到也不确认,因此不安全的

  • 可以进行广播发送,发送数据结束时,无需释放资源,开销小,速度快

public class TCPTest{
    public static void main(String[] args) throws IOException{
    	InetAddress inet = InetAddress.getByName("127.0.0.1");
        Socket socket = new Socket(inet,9999);
        
        OutputStream os = socket.getOutputStream();
        os.write("这是客户端".getBytes());
        os.close();
        socket.close();
    }
    @Test
    public void server(){
        ServerSocket ss = new ServerSocket(9999); 
        Socket socket = ss.accept();
        InputStream is = socket.getInputStream();
        byte[] data = new byte[1024]; 
        int len;
        while((len = is.read(data) != -1){
            String str = new String(data,0,len);
            System.out.println(str);
        }
        System.out.println(socket.getInetAddress().getHostAddress());
    }
}