java 网络通讯

雨点打透心脏的1/2处 2021-09-22 09:02 373阅读 0赞

(一)大家好,这篇博客小编给大家讲解java 网络通讯相关的知识。

1.网络通讯的三个要素:

  • IP地址
  • 端口号
  • 协议

2.网络通讯的协议

TCP:

  • 面向连接的,有特有的通道。
  • 发送数据是依靠IO发送的,在连接中传输大数据量,没有大小限制。
  • 通过三次握手协议,可靠协议,不会丢失数据。
  • 通信前必须建立连接,效率稍低。

    UDP:

  • UDP是面向无连接的。

  • 发送的数据要先封装到数据包中,每个数据包的大小限制在64K之内。
  • 因为面向无连接,数据包传输不可靠。
  • 因为无连接,所以速度快。

    PS:UDP数据包丢失的情况

  • CPU处理能力不足

  • 带宽不足

(二)TCP协议的代码实现

客户端:

  1. //客户端
  2. public static void Client()throws Exception{
  3. //建立TCP服务,创建一个socket对象,输入IP地址和端口号
  4. Socket socket = new Socket(InetAddress.getLocalHost(),9090);
  5. OutputStream out = socket.getOutputStream();
  6. out.write("大家好,我来自客户端,我叫Alan\r\n".getByte());//写数据
  7. BufferReader bufferedReader = new BufferReader(new InputStreamReader(socket.getInputStream()));
  8. System.out.println("客户端"+bufferedReader.readLine());
  9. socket.getInputStream();
  10. //关闭资源
  11. socket.close();
  12. }

服务端:

  1. public static void Server() throws Exception{
  2. new Thread (){
  3. try{
  4. public void run(){
  5. //建立TCP的服务
  6. ServerSocket serverSocket = new ServerSocket(9090);
  7. //建立接收客户端的链接
  8. Socket socket = serverSocket.accept();
  9. //读取客户端的数据
  10. BufferReader bufferedReader = new BufferReader(new InputStreamReader(socket.getInputStream()));
  11. System.out.println("服务端"+bufferedReader.readLine());
  12. //给客户端回送数据
  13. OutputStream out = socket.getOutputStream();
  14. out.write("你好客户端,我是服务端\r\n".getByte());
  15. }
  16. }catch (IOException e){
  17. e.printStackTrace();
  18. }
  19. }.start();
  20. }

main方法

  1. public static void main(String[] args){
  2. Server();
  3. Client();
  4. }

发表评论

表情:
评论列表 (有 0 条评论,373人围观)

还没有评论,来说两句吧...

相关阅读

    相关 物联网网络通讯知识

    RTU是什么 RTU英文全称Remote Terminal Units,中文全称为远程终端单元。远程终端设备(RTU)是安装在远程现场的电子设备,用来监视和测量安装在远程

    相关 网络通讯原理

    计算机网络采用层次性的结构模型,将网络分成若干层次,每个层次负责不同的功能。每一个功能层中,通信双方都要共同遵守相应的约定,我们把这种约定称为协议。网络协议就像网络通信中的共同