图文详解之网络编程!

1.网络编程

  • 什么是网络编程
    • 多台计算机连接形成网络
  • 网络的作用
    • 数据交互
    • 数据共享

2.网络三要素

  • 网络协议:双方实体完成通信或服务所必须遵循的规则和约定
    •         应用层:  http,ftp,smtp              

              传输层:  TCP udp

              网络层:  ip

              数据链路层网卡

              物理层物理连接

图文详解之网络编程!

图文详解之网络编程!

  • Ip:  设备在网络中的唯一标识(逻辑)

  • 端口: 逻辑上用于区分服务的端口(每个服务都会监听特定的端口)  0-65535

               80端口:http服务

               3306端口: mysql服务

               21:ftp端口

              1521:oracle服务

               8080:tomcat服务

 

3.其他概念

  • DNS服务器:服务器: 域名和IP地址之间映射关系的服务器。根据域名获取ip地址的过程称为域名解析
  • url:统一资源定位符。(定位资源的地方),协议://ip:端口/资源路径?参数

4.网络编程介绍

  • Java.net.InetAddress
//1.获取本机的IP地址
		InetAddress inetAddress = InetAddress.getLocalHost();
		//本机主机名称
		String hostName = inetAddress.getHostName();
		//ip地址字符串
		String ip = inetAddress.getHostAddress();
		System.out.println(hostName+":"+ip);
		
		//获取指定域名的ip
		InetAddress ia2 = InetAddress.getByName("192.168.5.132");
		System.out.println(ia2.getHostName()+":"+ia2.getHostAddress());

		//获取所有处理该请求的服务器ip地址
		InetAddress[] ias = InetAddress.getAllByName("www.baidu.com");
		for (InetAddress inet2 : ias) {
			System.out.println(inet2.getHostName()+":"+inet2.getHostAddress());
		}
  • 网络编程
    • Socket(套接字)编程
    • 发送和接收信息的端口(接口)

5.Tcp/Udp(传输层)

  • Udp
    • 面向无连接不可靠协议
    • 特点:快
  • TCP
    • 面向连接的可靠协议。先建立连接,形成传输通道才能通信,适合大数据量而且对数据要求较高的场景使用。
    • 速度慢。
    • 建立连接:  三次握手
      • Client/server:   请求响应模式
        • 客户端首先发送请求给服务器端(SYN)
        • 服务器返回响应(SYN+ACK(确认))
        • 发送ACK给服务器端,此时建立连接。
  • Tcp协议的socket
    • 客户端(Socket)
      • 明确服务器端ip地址和端口,建立连接。
      • 发送数据给服务器端
      • 释放资源
    • 服务器端(ServerSocket)
      • 确定监听端口
      • 获取客户端连接(建立连接)
      • 获取客户端发送的数据
      • 释放资源(服务器一般不用关闭)