一、 网络编程中有两个主要的问题:
1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用(分别对应2.1);
2.找到主机后如何可推高效地进行数据传输(分别对应2.2);

二、网络编程中的两个要素:
1.IP和端口号;
2.提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)

三、通信要素一:IP和端口号

  • IP:

1.IP:唯一的标识Internet. 上的计算机(通信实体);
2.在Java 中使用InetAddress类代表IP;
3.IP分类: IPv4(4个字节组成,4个0-255,点分十进制表示)和IPv6(16字节,8个无符号整数,每个整数用冒号分开:四个十六进制位表示);万维网和局域网;
4.域名:www.baidu.com; www.sina.com;
5.本地回路地址:127.0.0.1,对应:localhost;
6.如何实例化InetAddress类?
getByName(String host); getLocalHost();
InetAddress类的2个常用方法:getHostName() / getHostAddress();
7.Internet 上的主机有两种方式表示地址:

a. 域名(hostName): www.atguigu.com
b. IP地址(hostAddress): 202. 108.35.210

①InetAddress类主要表示IP地址,InetAddress类的一个对象就代表一个具体的IP地址,有两个子类: Inet4Address、 Inet6Address
②InetAddress类对象含有一个Internet 主机地址的域名和IP地址:www.baidu.com; 和 14.215.177.39。
域名解析:域名容易记忆,当在连接网将时输入-一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样才能和主机建立连接。

输入网址www.baidu.com,

先通过本机hosts(C:\Windows\System32\drivers\etc\hosts)寻找是否有输入域名地址:

如果没有,通过DNS域名解析服务器解析出ip地址:14.215.177.39,再通过解析出的ip地址访问到服务器:

  • 端口号:

1.端口号标识正在计算机上运行的进程(程序) ,不同的进程有不同的端口号;被规定为一个16位的整数0~65535。
2.端口分类:
a. 公认端口: 0~1023。 被预先定义的服务通信占用(如: HTTP占用端口
80,FTP 占用端口21,Telnet占用端口23);
b. 注册端口: 1024~49151。 分配给用户进程或应用程序。( 如: Tomcat占
用端口8080,MySQL占用端口3306,Oracle占用端口1521等) 。
c. 动态/私有端口: 49152~65535。
3.端口号与IP地址的组合得出- 一个网络套接字: Socket。

四、网络通信要素二:网络通信协议
TCP/IP协议簇:
1.传输层协议中有两个非常重要的协议:.

a. 传输控制协议TCP(Transmission Control Protocol)
b. 用户数据报协议UDP(User Datagram Protocol)。

2.TCP/IP以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得
名,实际上是一组协议,包括多个具有不同功能且互为关联的协议。
3.IP(Internet Protocol)协议是网络层的主要协议,支持网间互连的数据通信。
4.TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即
物理链路层、IP层、传输层和应用层。

TCP和UDP

  • TCP协议:
    1.使用TCP协议前,须先建立TCP连接,形成传输数据通道;
    2.传输前,采用“三次握手”方式,点对点通信,是可靠的;
    3.TCP协议进行通信的两个应用进程:客户端、服务端;
    4.在连接中可进行大数据量的传输;
    5.传输完毕,需释放已建立的连接,效率低。

  • UDP协议:
    1.将数据、源、目的封装成数据包,不需要建立连接;
    2.每个数据报的大小限制在64K内;
    3.发送不管对方是否准备好,接收方收到也不确认,故是不可靠的;
    4.可以广播发送;
    5.发送数据结束时无需释放资源,开销小,速度快。

tips:
1.一个IP对应着InetAddress类的一个对象;
2.实例化InetAddress类的两种方式:
a. InetAddress.getByName(String host);
b. InetAddress.getLocalHost();//获取本地ip
3.两个常用方法:
a. getHostName();
b. getHostAddress();

复习-网络编程之IP和端口号相关推荐

  1. Linux网络编程之IP地址转换为无符号整数的方法

    Linux网络编程之IP地址转换为无符号整数的方法,代码如下:(没考虑异常输入) #include <stdio.h> #include <string.h> #include ...

  2. 网络编程之:IP的ULONG方式字符串方式的相互转化

    网络编程之:IP的ULONG方式字符串方式的相互转化 // IpAndStr.cpp : Defines the entry point for the console application. // ...

  3. 【Python基础】网络编程之IP地址

    [Python基础]网络编程之IP地址 文章目录 IP 地址的介绍 1. IP 地址的概念 2. IP 地址的表现形式 2. IP 地址的作用 3. 查看 IP 地址 4. 检查网络是否正常 3. 小 ...

  4. Java之初步识别网络编程:IP、端口号、TCP/UDP、Socket、URL等

    文章目录 一.网络编程概述 二.网络通信要素概述 三.通信要素1:IP和端口号 IP相关 InetAdress类 如何实例化InetAddress 端口号 四.通信要素2:网络协议 TCP/IP协议簇 ...

  5. 网络编程之TCP服务端程序开发

    TCP服务端程序开发 学习目标 能够写出TCP服务端应用程序接收和发送消息 1. 开发 TCP 服务端程序开发步骤回顾 创建服务端端套接字对象 绑定端口号 设置监听 等待接受客户端的连接请求 接收数据 ...

  6. Java网络编程之IP地址和InetAddress类

    Java语言的优势之一是Java程序能访问网络资源.Java提供一系列的类支持Java程序访问网络资源. TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TC ...

  7. linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结

    首先声明,这篇博客是几篇博客转载然后总结在一起的,只当是学习笔记,不在意是什么原创和转载了,学到东西就好. 1.IP协议首部格式(IP协议处余网络层) IP数据报首部图片格式: 最高位在左边,记为0 ...

  8. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...

  9. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, 1 /* 2 *TCP 3 *建立连接,形成传输数据的通道: 4 *在连接中进行大数据量传输: ...

最新文章

  1. SimpleDateFormat处理 dd-MMM-yy类型日期
  2. asp.net panel 加html,ASP.NET 页面中动态增加的控件、添加事件
  3. (chap3 Http报文内的http信息) HTTP报文格式
  4. pythonandroid自动化测试仪器_使用Python进行Android自动化测试
  5. 2021第一波新年(春节)中国风插画设计,为年底储备素材
  6. python3.7运行报错_Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False)?...
  7. storm能不能测试wadl_测试网红燃油宝到底能不能除积碳,看完不花冤枉钱
  8. Python函数之返回多值
  9. 【Python-3.5】绘制随机漫步图
  10. python判断英文字母_python判断字符串是否包含字母
  11. 计算机员工工资管理系统源代码,C员工工资管理系统源代码.doc
  12. Java高阶知识体系总结(一)
  13. 数学建模多元分析实例
  14. 十进制转化为十二进制
  15. exe文件更换图标方法
  16. R-RCN 论文理解3
  17. 主流的企业级虚拟化解决方案
  18. 好乐买总裁李树斌:10亿,突破技术瓶颈
  19. 我的架构梦:(二)MyBatis的一级、二级、分布式缓存的应用以及源码分析
  20. java80道面试题

热门文章

  1. 提升服务器性能的建议
  2. 防止API被恶意调用,一般有哪些方法?
  3. mysql整除、取余、四舍五入
  4. 4-1 面向对象概述
  5. 作业:Regular Expression
  6. mongdb安装配置
  7. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
  8. 嵌入式Linux驱动学习之路(十五)按键驱动-定时器防抖
  9. 看几个源码,自己多做项目了!
  10. *p++和*++p_2020年P气瓶充装新版试题及P气瓶充装找答案