A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-4-24 19:58 编辑

网络编程笔记



网络编程
  • 网络让不同的设备连接起来,互相访问
  • 网络编程,通过编写的程序来实现不同设备之间的内容传输
  • Socket(套接字),一个Socket对象,就相当于定义一个发送,接收的对象(对象内容包括,计算机名,和程序端口)

网络通信的三要素
  • 传输协议
    • 通信的规则
      • TCP: 传输控制协议
        • 建立链接,形成传输数据通道,进行大数据量传输,
        • 三次握手,
        • 效率低
        • 有重发机制:保证了数据传输的准确性,但因为需要接受方发挥验证信息,所以数据发送时间长,数据流量大.
        • 适用场景
          • 适合准确性要求强的场合,比如金融系统,等


      • UDP:用户数据报协议
        • 没有链接,不可靠,速度快,每个数据报(一个包)限制为最大64K.
        • 使用场景:
          • 适合实时性要求强的场合,比如网络电话等环境,这种协议延迟很小.还有实时视频通话.




  • IP地址:是一个二进制数字.(32位的(IPV4),一个字节8位,就相当于4个字节,限定了IP的范围;(IPV6 ,有16个字节)
    • 关键字:InetAddress;

  • 端口号:
    • 物理端口:网卡口
    • 逻辑端口.我们学的就是逻辑端口
    • 0~65535个端口,前1024个端口号是系统保留端口号,
    • 查看端口号:netstat -n;

  • 一个网址,http://baidu.com
    • http: 传输协议
    • baidu.com:IP地址,(通过DNS服务来转换成二进制数字)
    • 端口号,网页默认80端口


Java中对IP地址和传输协议都有对应的类来进行操作IP地址对应的类InetAddress
  • InetAddress类中的成员变量有二进制的IP地址,和主机名
    • doc命令:ipconfig,显示主机信息.
    • InetAddress类中获取的方法
      • String getHostAddress();返回的是IP地址
      • String getHostName();返回的是主机名
      • InetAddress getLoclaHost();



UDP协议发送数据
  • DateGramSocket类
    • 构造方法
      • 无参构造
      • 有参构造,输入int类型的port(端口号)
      • 这个构造的对象即可以发送也可以接受数据报包(DateGramPacket对象).
        • DateGranPacket对象包含的成员变量
          • byte[]: 数据
          • IP: 设备地址
          • port: 进程的地址,端口号.
          • 有参构造,包含上边三个成员变量,打包成一个包即DateGranPacket对象.




  • 创建发送端Socket对象
  • 创建数据并打包
  • 发送数据
  • 释放资源

使用UDP协议接收数据
  • 创建接收端Socket对象
  • 接收数据
  • 解析数据
  • 处理数据
  • 释放资源
  • UDP协议收发数据时的注意事项
    • 端口号错误,数据可以正常发出,不会出现异常,但是收不到
    • 接收端启动以后,端口号就被绑定了,再启动就会出现异常(java.net.BindException :Address already in use :Cannot bind);
    • 解决办法,关闭占用端口的程序,或者换一个端口.


TCP协议发送数据
  • java.net.Socket类:客户端
  • java.net.ServerSocket: TCP服务端.
  • 使用TCP协议发送数据
    • 创建发送端Socket对象(明确服务端的IP地址和端口号)(创建链接)
      • 参数是服务端的地址和端口号

    • 获取输出流对象
    • 发送数据
    • 释放资源

  • 使用TCP协议接收数据
    • 创建接收端对象(ServerSocket类)(明确端口号);
    • 监听(也是一种阻塞);
    • 获取输入流对象,
    • 获取数据
    • 处理数据
    • 释放资源




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马