JAVA学习63-通信协议CS模式如何建立通信连接

    科技2025-02-07  12

    1.5 通信协议

    协议:约定,就好比我们现在说的是普通话 网络通信协议:速率,传输码率,代码结构,传输控制.... 问题:非常的复杂 大事化小:分层 最常用的TCP/IP协议 重要: TCP:用户传输协议 UDP:用户数据报协议 出名的协议: ICP IP:网络互联协议 TCP和UDP的对比: TCP:相当于打电话 连接,稳定 三次握手,四次握手,最少要交流三次才能建立连接。 断开至少要交流四次才能完全断开。 客户端,服务端 传输完成,释放连接,效率低 UDP:相当于发短信 不连接,不稳定 客户端,服务端:没有明确的界限 不管你有没有准备好,都会发给你... 导弹 DDOS:洪水攻击饱和攻击

    1.6TCP

    客户端: 1.连接服务器Socket 2.发送消息 服务端: 1.建立服务的端口 ServerSocket 2.等待用户的连接 accept() 3.接受用户的消息

    客户端

    import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; //客户端 public class TestClientDemo01 { public static void main(String[] args) { Socket socket=null; OutputStream outputStream=null; //我要知道服务器的地址,端口号 try { InetAddress serverIP=InetAddress.getByName("127.0.0.1"); int Port=9999; //创建一个scoket连接 socket = new Socket(serverIP,Port); //发送消息 使用IO流 outputStream = socket.getOutputStream(); outputStream.write("你好,欢迎学习java".getBytes()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (outputStream!=null){ try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }

    服务端

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; //服务端 public class TestServerDemo01 { public static void main(String[] args) { ServerSocket serverSocket=null; Socket socket=null; InputStream inputStream=null; ByteArrayOutputStream boas=null; try { //我得有一个地址 serverSocket = new ServerSocket(9999); //等待客户链接过来 socket=serverSocket.accept(); //读取客户端的消息 inputStream = socket.getInputStream(); //管道流 boas = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len=inputStream.read(buffer))!=-1){ boas.write(buffer,0,len); } System.out.println(boas.toString()); } catch (IOException e) { e.printStackTrace(); } if (boas!=null){ try { boas.close(); } catch (IOException e) { e.printStackTrace(); } } if (inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } if (serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
    Processed: 0.012, SQL: 8