(1). 利用数据报通信方式编写一程序,该程序生成两个客户端,一个服务器端,两个客户端可以相互进行简短的文字交流。在报告中附上程序截图、完整的运行结果和简要文字说明。(70分:数据报通信5分(如用套接字连接扣5分),两个客户端10分,一个服务器端10分,实现文字交流10分,程序注释和截图10分,运行结果截图15分,文字说明10分)
1.首先实现服务器端:
创建UDP套接字并绑定端口: 使用DatagramSocket类创建UDP套接字,并绑定到9876端口。
启动接收线程: 创建一个新线程,负责接收来自客户端的消息。通过socket.receive()方法接收DatagramPacket,然后将接收到的数据转换为字符串并打印。
接受客户端消息以及发送客户端消息: 在主线程中,使用Scanner从控制台读取用户输入的消息。输入的消息格式为"客户id 消息"。将消息转换为字节数组后,使用DatagramPacket将消息发送到指定客户端的地址和端口。
2.实现客户端1和客户端2:(此处仅展示客户端1,客户端2和客户端1的区别只是端口为9877)
创建UDP套接字: 使用DatagramSocket类创建UDP套接字,并绑定到9877端口。
获取服务器地址和端口: 获取服务器的地址为"localhost",端口为9876。
启动接收线程: 创建一个新线程,负责接收来自服务器的消息。通过socket.receive()方法接收DatagramPacket,然后将接收到的数据转换为字符串并打印。
发送消息给服务器: 在主线程中,使用Scanner从控制台读取用户输入的消息。将消息转换为字节数组后,使用DatagramPacket将消息发送到服务器的地址和端口。
3.运行三个文件,发送消息。如下图所示:
(2). 编写Java程序,实现RMI远程调用。客户端指定某个http网站,把这个网址传递给服务器端,服务器端提供http下载服务,通过http get 请求访问http网站,把对应的html文件返回给客户端。在报告中附上程序截图、完整的运行结果和简要文字说明。(10分:实现RMI远程调用5分,实现HTTP访问5分)
1.远程接口(Remote Interface): 包含定义远程方法的接口,该接口必须扩展java.rmi.Remote接口,每个方法都必须声明throws RemoteException。
2.远程实现(Remote Implementation): 实现远程接口中定义的方法。
3.服务器端(Server): 包含RMI注册、创建并发布远程对象的代码。
4.客户端(Client): 包含远程对象的查找和调用代码。
5.启动RMI注册表: start rmiregistry.
6.运行代码,返回成功。
(by 归忆)