为了账号安全,请及时绑定邮箱和手机立即绑定

Java---------网络编程

标签:
Java

OSI模型:是抽象的,接口
TCP/IP模型:是实现类
OSI7层模型:(从下往上)物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP4层模型:(从下往上)物理层,网络层,传输层,应用层

IP地址:用于唯一识别连接到Internet上的计算机
地址表示方式
IPv4: (32位)点分10进制表示方式,四个整数用点分开,每个十进制数字代表一个8 bits整数,如192.168.123.1
IPv6: (128位)点分16进制表示方式,八个整数用点分开,每个十六进制数字代表一个16bits整数,如CDCD:910A:2222:5498:8475:1111:3900:2020
域名:服务器的地址(名称)
ping www.baidu.com 获取百度的IP地址
sina.com.cn taobao.com DNS-->ARP
DNS:Domain Naming Service Sina.com-->202.100.1.0
ARP:Address Reverse Protocol 202.100.1.0 -->MAC
MAC:计算机物理地址
DNS:域名解析,将域名解析为IP地址
ARP:地址解析协议,将IP地址解析为域名地址
本地IP
127.0.0.1 等同于 localhost

TCP协议简介
TCP协议是一个有连接、可靠的协议
非常类似与打电话,两端建立长连接,相互传递信息
TCP编程
java.net.Socket
java.net.ServerSocket

服务器端:
创建ServerSocket对象(并绑定端口)
调用accept方法,等待来自客户端的连接
调用getInputStream/getOutputStream方法,进行I/O
关闭Socket(Socket:套接字 即 IP地址+端口号,表示是一个服务service)
客户端:
创建Socket对象,并连接服务器
调用getInputStream/getOutputStream方法,进行I/O
关闭Socket

TCP:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、
基于字节流的传输层通信协议。在OSI模型中,它完成第四层传输层所指定的功能,
用户数据报协议(UDP)是同一层内另一个重要的传输协议。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,
而是提供不可靠的包交换。
UDP:是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序
的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。
UDP 协议基本上是IP协议与上层协议的接口。
UDP协议适用端口分别运行在同一台设备上的多个应用程序。
UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,
UDP传输的可靠性由应用层负责。常用的UDP端口号有:
应用协议 端口号
DNS 53
TFTP 69
SNMP 161
UDP:报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,
在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。

端口范围:0-65535 0-1024 系统端口号

UDP协议简介
UDP是一个无连接,不可靠的协议。即:数据的发送方只负责将数据发送出去,数据的接受方只负责接收数据。发送方和接收方不会相互确认数据的传输是否成功。
UDP编程:
java.net.DatagramSocket
java.net.DatagramPacket
UDP编程的核心思路
服务器 DatagramSocket socket = new DatagramSocket(9000)
客户端 DatagramSocket socket = new DatagramSocket()

DatagramPacket
DatagramPacket(byte[] buf, int length) 接收端
DatagramPacket(byte[] buf, int length, SoketAddress,int port) 发送端
getAddress()/getSockAddress()/getPort()/getLength()
setAddress()/setSockAddress()/setPort()/setLength()

点击查看更多内容
15人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.5万
获赞与收藏
8507

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消