zoukankan      html  css  js  c++  java
  • Java Internet

    网络通信:

    网络通信三要素:

      IP

      协议

      端口

    TCP:
      建立连接,发送速度慢
      三次握手协议
    UDP:
      不需要建立连接,发送速度快
      安全性低

     

      a) 使用UDP实现数据的发送
        1 创建Socket端点实现数据的发送
          DatagramSocket:
          基于UDP,发送数据包
        2 明确发送的数据
        3 把数据封装成数据报包
          DatagramPacket:
          UDP数据包,指明了发送的数据,接收方的IP,接收方的端口
        4 使用Socket的发送功能发送数据
          内部使用输出流将数据写出去,所以有IOException


    b) 使用UDP实现数据的接收:
      1 创建Socket端点实现数据的接收
        需要指定监听的端口
      2 创建一个空的数据报包来接收数据
      3使用Soclet的接收功能来接收
      4 从数据报包获取数据

     

        c) 使用TCP实现数据的发送:
          客户端
          1 创建Socket端点,负责数据发送,同时需要和服务端连接
          2 发送数据,就是输出,使用输出流
            Socket:只能作为客户端(发送)

    Scoket socket = new Scoket(InetAddress.getByName(""), 55555);

    这句话成功执行说明成功创建客户端
    同时说明和服务器端连接成功
    也就是和服务器端建立了一条通道
    这条通道就是这个Socket流(客户端对象),Socket流中既有字节输入流,也有字节输出流

     

        d) 使用TCP实现数据的接收:
          服务端
            ServerSocket:
          1 创建Scoket对象,同时监听端口
          2 得到客户端对象,和客户端使用相同的流
          3 接收数据,就是读取数据,使用输入流


    服务端如何区分客户端?

      得到客户端对象,和客户端使用相同的流

    shutDownOutput():添加结束标记

  • 相关阅读:
    C# Thread Lambda
    C#中Invoke的用法
    C#抽象类和抽象方法
    SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
    改变自己的128种方法
    小技巧
    Linux学习第一章作业.zxs
    Linux学习第二、三章作业.zxs
    Linux 系统管理 04—账号管理
    Mysql中的in和find_in_set的区别?
  • 原文地址:https://www.cnblogs.com/roxy/p/7339830.html
Copyright © 2011-2022 走看看