找回密码
 注册

QQ登录

只需一步,快速开始

查看: 779|回复: 0

吉大《java程序设计》21春复习指导(八)

[复制链接]
发表于 2021-2-22 11:05:57 | 显示全部楼层 |阅读模式
吉大《JAVA程序设计》FAQ(八)
第九章 网络编程
1、什么是工厂方法?
InetAddress 类没有明显的构造函数 。为生成一个InetAddress对象,必须运用一个可用的工厂方法。工厂方法(factory method)仅是一个类中静态方法返回一个该类实例的约定。这是在一个带有各种参数列表的重载构造函数完成的,当持有惟一方法名时可使结果更清晰。对于InetAddress,三个方法getLocalHost( )、getByName( )以及getAllByName( )可以用来创建InetAddress的实例。
2、Java中有哪两类TCP套接字?
 Java中有两类TCP套接字。一种是服务器端的 ,另一种是客户端的 。ServerSocket 类设计成在等待客户建立连接之前不做任何事的“监听器”。Socket类为建立连向服务器套接字以及启动协议交换而设计。
一个Socket对象的创建隐式建立了一个客户和服务器的连接。没有显式的说明建立连接细节的方法或构造函数。
3、ServerSocket与通常的Sockets的区别?
 一个Socket对象的创建隐式建立了一个客户和服务器的连接。没有显式的说明建立连接细节的方法或构造函数。
 ServerSocket与通常的Sockets类完全不同 。当创建一个Server Socket类,它在系统注册自己对客户连接感兴趣。ServerSocket的构造函数反映了希望接受连接的端口号及你希望排队等待上述端口的时间(该项可选)。队列长度告诉系统多少与之连接的客户在系统拒绝连接之前可以挂起。队列的默认长度是50。构造函数在不利情况下可以引发IOException异常。
4、什么是数据包?
 数据报(Datagrams)是在机器间传递的信息包 ,它有些像从一个训练有素但是很盲目的捕手投出一记有力的传球给三垒。一旦数据报被释放给它们预定的目标,不保证它们一定到达目的地,甚至不保证一定存在数据的接收者。同样,数据报被接受时,不保证它在传输过程不受损坏,不保证发送它的机器仍在那儿等待响应。
Java通过两个类实现UDP协议顶层的数据报 :DatagramPacket对象是数据容器 ,DatagramSocket是用来发送和接受DatagramPackets的机制。
5、TCP和UDP的比较
TCP,面向连接的保证可靠传输的协议
通过TCP协议传输,得到的是一个顺序的无差错的数据流
发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信
当一个socket等待建立连接时,另一个socket可要求进行连接,一旦这两个socket连接起来,就可以进行双向数据传输,双方都可以发送或接收操作
UDP:一种无连接的协议
每个数据包都是一个独立的信息,包括完整的源地址和目的地址,在网络上以任何可能的路径传往目的地
无法保证能否到达目的地,到达目的地的时间以及内容的正确性
使用UDP时,每个数据包中都给出了完整的地址信息,无需建立发送方和接收方的连接
对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前要建立连接,所以在TCP中多个一个建立连接的时间
使用UDP传输数据时,每个被传输的数据包必须限定在64KB之内
TCP没有限制,一旦建立连接,双方的socket可按统一的格式传输大量数据
UDP,不可靠地协议,发送方所发送的数据报并不一定以相同的次序到达接收方
TCP,可靠地协议,它确保接收方完全正确的获取发送方所发送的全部数据
6、使用UDP和使用TCP在程序上比较明显的区别:
UDP的socket编程是不提供监听功能的,通信双方更为平等,面对的接口是完全一样的
为了用UDP实现CS结构,在使用UDP时可以使用DatagramSocket.receive()来实现类似于监听的功能:
Receive()是阻塞的函数,当它返回时,缓冲区里已经填满了接受到的一个数据报,并且可以从该数据报得到发送方的各种信息
和accept()是很相像,可以根据读入的数据包来决定下一步的动作,这就达到了和网络监听相似的效果
东师作业答案可以联系QQ 761296021

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-5 02:02

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表