Java第二十一章

本文介绍了网络程序设计的基础概念,包括网络协议、TCP/UDP协议及其应用、端口与套接字,重点讲解了TCP服务器程序和UDP通信的基本模式,以及广播数据报技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.网络程序设计基础

1.网络协议

        网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电气(有效的电平范围)等特征,计算机之间的相互寻址规则,数据发送冲突的解决方式,长数据如何分段传送与接收等内容.就像不同的国家有不同的法律一样,目前网络协议也有多种。

TCP与UDP 协议

        在 TCP/IP 协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即传输控制协议Transmission Control Protocol,TCP) 与用户数据报协议 (User Datagram Protocol,UDP)。TCP 协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传送。TCP 可以保证数据从一端送至连接的另一端时,能够确实送达,而且抵达的数据的排列顺序和送出时的顺序相同。

2.端口与套接字

        一般而言,一台计算机只有单一的连到网络的物理连接(Physical Connection),所有的数据都通过此连接对内、对外送达特定的计算机,这就是端口。网络程序设计中的端口(port)并非真实的物理存在,而是一个假想的连接装置。端口被规定为一个在0~65535 的整数。HTTP 服务一般使用80端口,FTP 服务使用 21端口。假如一台计算机提供了 HTTP、FTP 等多种服务,那么客户机会通过不同的端口来确定连接到服务器的哪项服务上,如图所示。

二.TCP协议

        TCP 网络程序设计是指利用 Socket 类编写通信程序。利用TCP 协议进行通信的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序,两者的功能和编写方法大不一样

1.InetAddress类

        java.net 包中的 InetAddress 类是与 IP 地址相关的类,利用该类可以获取 IP 地址、主机地址等信息

例1.

2.ServeSocket类

        java.net 包中的 ServerSocket 类用于表示服务器套接字,其主要功能是等待来自网络上的“请求”它可通过指定的端口来等待连接的套接字。服务器套接字一次可以与一个套接字连接。如果多台客户机同时提出连接请求,服务器套接字会将请求连接的客户机存入列队中,然后从中取出一个套接字,与服务器新建的套接字连接起来。若请求连接数大于最大容纳数,则多出的连接请求被拒绝。队列的默认大小是 50。

3.TCP网络程序设计

        明白了 TCP 程序工作的过程,就可以编写 TCP 服务器程序了。在网络编程中,如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单向通信。客户机套接字和服务器套接字连接成功后,客户机通过输出流发送数据,服务器则通过输入流接收数据。下面是简单的单向通信的实例

例2.

三.UDP协议

基于UDP 通信的基本模式如下:

将数据打包 (称为数据包),然后将数据包发往目的地。

接收别人发来的数据包,然后查看数据包。

发送数据包的步骤如下:

(1)使用 DatagramSocket0创建一个数据包套接字。

(2) 使用 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)创建要发送的数据包。

(3)使用 DatagramSocket 类的 send()方法发送数据包。

接收数据包的步骤如下:

(1)使用 DatagramSocket(int port)创建数据包套接字,绑定到指定的端口。

(2)使用 DatagramPacket(byte[] buf,int length)创建字节数组来接收数据包

(3) 使用 DatagramPacket 类的 receive()方法接收 UDP 包。

1.DatagramPacket类

        javanet 包的 DatagramPacket 类用来表示数据包。DatagramPacket 类的构造方法如下:

DatagramPacket(byte[] buf, int length)


DatagramPacket(byte[] buf, int length, InetAddress address, int port)

2.DatagramSocket类

        java.net 包中的 DatagramSocket 类用于表示发送和接收数据包的套接字。该类的构造方法如下:

DatagramSocket()

DatagramSocket(int port)

DatagramSocket(int port, InetAddress addr)

3.UDP网络程序设计

        根据前面所讲的网络编程的基本知识以及 UDP 网络编程的特点,下面创建一个广播数据报程序广播数据报是一项较新的技术,其原理类似于电台广播。广播电台需要在指定的波段和频率上广播息,收听者也要将收音机调到指定的波段、频率,才可以收听广播内容。

例3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值