网络编程笔记

两台计算机通过网络进行通信
1.要求两台计算机有唯一的标识,这个标识就是IP地址
2.要求有相同的语言,这个语言就是协议
3.要求有相应的端口号

TCP/IP协议
是目前世界商应用最为广泛的协议
是以TCP和IP为基础的不同层次商多个协议的集合
也称TCP/IP协议族或TCP/IP协议栈
TCP:Transmission Control Protocol传输控制协议
IP:Internet Protocol互联网协议
为实现网络中不同计算机之间的通信,每台计算机都必须有一个唯一的标识--IP地址
IP地址格式:数字型,如192.168.0.1(IPV4版本)
端口:用于区分不同的应用程序,范围0~65535,其中0~1023为系统所保留
IP地址加端口号组成了所谓的Socket,Socket是网络运行的程序之间双向通信链路的终结点,是TCP和UDP的基础,终结点及终端
常用协议使用的端口号:
http--80,ftp--21,telnet--23

TCP/IP模型
5:应用层--http超文件传输协议、FTP文件传输协议、SMTP简单邮件传送协议、Telnet远程登录协议
4:传输层--TCP/IP
3:网络层
2:数据链路层
1:物理层--网线、网卡等

Java中的网络支持API
1.InetAddress:用于标识网络上的硬件资源
2.URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
3.Sockets:使用TCP协议实现网络通信的Socket相关的类
4:Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信

InetAddress类的应用:
demo
URL:
1.URL(Uniform Resource Locator)统一资源定位符,标识Internet上某一资源的地址
2.URL由两部分组成:协议名称和资源名称,中间用冒号隔开
3.在java.net包中,提供了URL类来标识URL
4.构造
5.读取网页内容

Socket通信
TCP协议是面向连接、可靠的、有序的,以字节流的方式发送数据
基于TCP协议实现网络通信的类:
1.客户端的Socket类
2.服务器端的ServerSocket类
Socket通信模型
服务器端
1.建立服务器倾听Socket,绑定相应的端口进行监听,等待客户端请求
2.接收请求后创建一个连接socket用来与客户端socket进行通信
3.通过IO进行通信
4.结束通信后释放资源

客户端
1.创建socket向服务器发送请求
2.通过IO进行通信
3.结束通信后释放资源

Socket通信实现步骤
1.创建ServerSocket和Socket
2.打开连接到Socket的输入/输出流
3.按照协议对Socket进行读/写操作
4.释放资源

多线程服务器基本步骤
1.服务器端创建ServerSocket,循环调用accept()等待客户端连接
2.客户端创建一个socket并请求和服务器端连接
3.服务器端接收客户端请求,创建socket与该客户建立专线连接
4.建立连接的两个socket在一个单独的线程上对话
5.服务器继续等待新的连接

UDP编程
UDP协议(用户数据报协议)是无连接、不可靠的、无序的,速度快
UDP协议以数据报作为数据传输的载体
进行数据传输时,首先需要将要传输的数据定义成数据报(Datagram),在数据报中指明数据所要达到的Socket(主机地址和端口号),然后再将数据报发送出去

相关操作类
DatagramPacket:表示数据报包
DatagramSocket:进行端到端通信的类

服务器端实现步骤
1.创建DatagramSocket,指定端口号
2.创建DatagramPacket
3.接收客户端发送的数据信息
4.读取数据
客户端实现步骤
1.定义发送信息
2.创建DatagramPacket,包含要发送的信息
3.创建DatagramSocket
4.发送数据

题:基于UDP多用户通信

总结:
Socket通信原理
基于TCP的Socket通信
多线程的优先级
未设置优先级可能会导致运行时速度非常慢,可降低优先级
关闭socket会自动关闭流
使用TCP通信传输对象
ObjectInputStream、ObjectOutputStream
Socket编程传递文件,通过输入输出流读取文件中的数据,发送给服务器端 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值