网络编程

计算机网络

在这里插入图片描述
TCP/IP网络模型
在这里插入图片描述

C/S架构网络服务:客户端应用程序+服务器应用程序

程序员编写Web服务等通用网络服务程序,应当按照协议编写程序。编写自己的专有网络服务程序,可以制定自己的应用协议。

在这里插入图片描述
使用套接字指定端口号

java API 因特尔地址类:
在这里插入图片描述

网络服务

网络服务是通过服务器应用程序来提供的,不同网络服务需要不同服务器应用程序
在这里插入图片描述
统一资源定位符URL:

protocol://host[:port]path[?query]

本地文件URL:

file:///D:\image\1.png

统一资源定位符类:
在这里插入图片描述

网络通信

有连接通信(TCP)

连接示意图:
在这里插入图片描述
通信流程:
1,服务器应用程序持续监听tcp端口
2,客户端请求连接
3,服务器给出响应
4,客户端建立连接
5,通信结束,关闭连接

java API网络通信类
Socket(客户端套接字类)
在这里插入图片描述
getInputStream():获得套接字的字节型输入流对象,从输入流对象读取数据,就是接收对方发来的信息。

getOutputStream():获得套接字的字节型输出流对象。向输出流对象写数据,就是向对方发送信息。

代码结构:

try{
	Socket s = new Socket(服务器域名或IP地址,服务器端口);
	......
	s.close();
	}
	catch(IOException e){......}

ServerSocket(服务器套接字类)
在这里插入图片描述
代码结构:

try{
	ServerSocket ss = new ServerSocket(服务器端口);
	while(运行条件或true){
	Socket s = ss.accept();
	......
	s.close();
	}
	ss.close();
	}
	catch(IOException e){......}

网络编程:
在这里插入图片描述
c/s架构的网络服务程序
在这里插入图片描述
注:服务器程序一般要写成多线程并发程序,有利于多用户访问。

无连接通信(UDP)

通信流程:
1,接收方准备好缓冲区,监听某个udp端口。
2,发送方准备好接收方的网址,udp端口和需要发送的数据,然后发送数据,通信结束。
3,接收方接收数据,通信结束。

java API:
DatagramPacket(数据包裹类)
在这里插入图片描述
DatagramSocket(数据报套接字类)
在这里插入图片描述
代码框架:
在这里插入图片描述

UDP接收服务器

在这里插入图片描述
接受服务器代码结构:

try{
	byte buf[] = new byte[缓冲区大小];
	DatagramPacket pack = new DatagramSocket(buf,buf.length);
	DatagramSocket ds = new DatagramSocket(UDP端口号);
	while(运行条件或true){
		ds.receive(pack);
		......
		}
	}
	catch(IOException e){......}

UDP多播

将数据报发送给一个群组,使用的是多播地址(D类地址)

多播通信流程:
1,发送方确定多播地址和UDP端口号,然后向群组持续发送数据。
2,接收方准备好接收数据用的缓冲区,然后加入到发送方指定的群组,监听该群组指定UDP端口号,接收数据。

多播套接字类------MulticastSocket
在这里插入图片描述
注:接收方使用多播套接字类,发送方使用的是一般数据报套接字类

参考

慕课

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Ma.01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值