高级java实验指导书(1) 下载本文

public class Server { public static void main(String[] args) throws Exception{ ServerSocket server = new ServerSocket(888); ———————————— InputStreamReader reader = new InputStreamReader(socket.getInputStream()); BufferedReader buffer_reader=new BufferedReader(reader); PrintWriter writer=new PrintWriter(socket.getOutputStream()); String request = buffer_reader.readLine(); System.out.println(\ String line=\ writer.println(line); writer.flush(); writer.close(); buffer_reader.close(); 服务端 ———————— server.close(); } } 三、根据下面要求编写程序

1. 请分别采用TCP、UDP协议编程实现一对一的文件上传。

2. 编写一对多的聊天程序,程序由服务器和客户端两部分构成,两部分的

交互方式如下:

17

a. 客户端发送命令: 给服务器端注册用户,服务器端如果允许注册,则返回消息:,否则返回消息:

b. 客户端发送命令: 给服务器端进行登录, 服务器端如果允许登录,则返回消息:,否则返回消息:

c. 客户端发送命令: 给服务器端,服务器端收到命令后返回消息:

d. 服务器向指定客户端发送命令:,如果客户端收到消息,则返回:,如果message命令中的 from属性为空,则表示由服务器发送的消息。

e. 客户端发送命令: 给服务器端进行注销登录, 服务器端如果允许注销登录,则返回消息:,否则返回消息:

程序可以采用GUI,也可采用命令行的方式。

四、实验结果

写实验报告。内容包括:

1、习题的运行结果,源程序。 2、程序调试中出现的错误提示。(英文、中文对照) 3、若有没通过的程序,分析原因。

五、选做习题

(1)请分别采用TCP、UDP协议编程实现一对多的文件上传。

(2)请编写程序把页面:http://www.w3.org/Consortium/Member/List中的 “Current Members”的名称抽取出来,存入文本文件中。(也可以下载任意指定页面,并抽取相关的内容)

18

(3)模仿QQ,设计实现一个聊天工具。

一、实验目的

1、理解线程概念和定义。

实验6 多线程

19

2、掌握创建、管理和控制Java线程对象的方法,包括创建Java 线程对象、 改 变线程状态、设置线程优先级以控制线程调度等方法。

3、了解并执行的多线程间存在的各种不同关系,掌握实现线程互斥和线程同步的方法。

二、实验内容

1、程序验证

(1)输入以下程序,观察输出结果。

class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); } } class R implements Runnable{ private int x = 0; public void run(){ System.out.println(++x); } } public class Test { public static void main(String[] args) throws Exception{ for(int i=0;i<10;i++){ Thread t = new MyThread(); t.start(); } Thread.sleep(10000); R r = new R(); for(int i=0;i<10;i++){ Thread t = new Thread(r); t.start(); } } }

(2)输入如下程序,观察输出结果。

ublic class ThreadDemo { (3) public static void main(String[] args) { Thread t = new TestThread(); // t.setDaemon(true); t.start(); 20 int i=0; while(true) { System.out.println(\