网络编程

网络编程

1.1、概述

TCP 比如 打电话:连接–>接通–>通话
UDP 比如 分短信:发送了就行了–>接收

计算机网路:

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调瞎实现资源共享和信息传递的计算机系统。

网络编程的目的

无线电台…传播交流信息,数据交换。通信。

条件

  1. 如何准确的定位网络上的一台主机 IP地址:端口,定位到这个计算机上的某个资源。
  2. 如何传输数据

1.2、网络通信的要素

通信双方地址
3. ip
4. 端口
5. 192.168.16.124:800

规则:网络通信的协议
TCP/IP参考模型:
在这里插入图片描述
我们需要了解传输层的TCP、UDP协议

总结

  1. 网络编程中有两个主要的问题
    • 如何准确的定位到网络上的一台或多台主机
    • 找到主机之后如何进行通信
  2. 网络编程中的要素
    • IP和端
    • 网络通信协议:UDP、TCP
  3. 万物皆对象

1.3、IP

ip地址:InetAddress

  • 唯一定位一台网络上计算机
  • 127.0.01:本机 localhost
  • ip地址的分类
    • ipv4/ipv6
      • ipv4:4个字节组成,
      • ipv6:128位,8个无符号整数
    • 公网(互联网)-私网(局域网)
      • ABCD类网络
      • 专门给组织内部使用
  • 域名:记忆IP问题
package org.star.demo;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class TestInetAddress {
   
    public static void main(String[] args) {
   
        try {
   
            //查询本机地址
            InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress1);
            InetAddress inetAddress2 = InetAddress.getByName("localhost");
            System.out.println(inetAddress2);
            InetAddress inetAddress3 = InetAddress.getLocalHost();
            System.out.println(inetAddress3);

            //查询网站ip地址
            InetAddress inetAddress4 = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress4);

            //常用方法
            //System.out.println(inetAddress4.getAddress());//返回一组地址 没什么用
            System.out.println(inetAddress4.getCanonicalHostName());//规范的名字
            System.out.println(inetAddress4.getHostAddress());//ip
            System.out.println(inetAddress4.getHostName());//域名,或者电脑的名字

        } catch (UnknownHostException e) {
   
            e.printStackTrace();
        }

    }
}

在这里插入图片描述

1.4、端口

端口表示计算机上的一个程序的进程;

  • 不同的进程有不同的端口号!用来区分软件!
  • 端口被规定0~65535
  • 分为TCP端口和UDP端口:65535*2,当tcp80端口时,udp也可以80端口,但是单个协议下,端口不能冲突
  • 端口分类
    • 公有端口 0~1023
      • HTTP:80
      • HTTPS:443
      • FTP:21
      • Telent:23
    • 程序注册端口:1024~49151,分配用户或者程序
      • Tomcat:8080
      • MySQL:3306
      • Oracle:1521
    • 动态、私有:49152~65535
    • 常见的DOS命令
    •   netstat -ano #查看所有的端口
        netstat -ano|findstr "5900" # 查看指定的端口
        tasklist|findstr "8696" #查看指定端口的进程
        Ctrl+ shift + ESC
      
      
      
package org.star.demo;

import java.net.InetSocketAddress;

public class TestInetSocketAddress {
   
    public static void main(String[] args) {
   
        //构造端口
        InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
        System.out.println(socketAddress);
        InetSocketAddress socketAddress2 = new InetSocketAddress("localhost", 8080);
        System.out.println(socketAddress2);

        System.out.println(socketAddress.getAddress());
        System.out.println(socketAddress.getHostName());//地址
        System.out.println(socketAddress.getPort());//端口
    }
}

在这里插入图片描述

1.5、通信协议

协议:为进行网络中的数据交换而建立的规则、标准或约定称为协议。
网络通信协议: 速率,传输码率,代码结构,传输控制
TCP/IP协议簇: 实际上时一组协议
重要:

  • TCP:用户传输协议
  • UDP:用户数据报协议

出名的协议:

  • TCP
  • IP

TCP UDP对比

TCP:打电话

  • 连接,稳定
  • 三次握手 四次挥手
  • 客户端、服务器
  • 传输完成,释放连接,效率低

UDP:发短信

  1. 不连接,不稳定
  2. 客户端、服务段:没有明确的界限
  3. 不管有没有准备好,都可以发给你

1.6、TCP

传输消息

客户端

  1. 连接服务器Socket
  2. 发送消息
package org.star.demo;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值