Java编程作业 多线程Web服务器 小女子跪求答案

作业1:当本编程作业结束时,你将用JAVA语言开发一个多线程的Web服务器,它能并行服务于多个请求。你将实现由RFC1945定义的HTTP1.0版。HTTP/1.0为每一... 作业1:
当本编程作业结束时,你将用JAVA语言开发一个多线程的Web服务器,它能并行服务于多个请求。你将实现由RFC1945定义的HTTP1.0版。 HTTP/1.0为每一次请求/响应对创建一个单独的TCP连接。一个单独的线程将处理这些连接中的每一个。存在一个主线程,服务器使用该主线程监听希望创建连接的客户机。为了简化编程任务,我们分两阶段开发代码。在第一个阶段,你将写一个多线程服务器,用于简单地显示接收到的HTTP请求的报文的内容。在这个程序正常运行后,再添加产生适当响应所需的代码。 当开发这个程序时。可以使用Web浏览器来测试该服务器。但是记住不能通过标准的70端口提供服务,因为你需要在浏览器的URL中指定端口号。例如,如果主机名为host.someschool.edu,服务器监听端口为6789,并且需要获取的文件名为index.html,应在浏览器中指定下列URL:
http://host.someschool.edu:6789/index.html 当服务器遇到差错时,它应该发从一个具有适当HTML源的响应报文,从而可以在浏览器窗口中显示差错信息。在Web站点 http://www.awl.com/kurose-ross 中可以找到本作业的所有细节及重要的Java代码片段
展开
 我来答
匿名用户
2013-06-22
展开全部
1、创建一个动物集合,插入动物园中有的几种动物(请给出10种)
2、一次性输出内容
3、使用iterator遍历集合中所有内容
4、将集合内容转存储于一个数字内,并在数组中进行排序

只列举了2种动物,自己再添加
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/**
*
* @author Administrator
*/
interface Animal {
public String toString();

}

class Cat implements Animal,Comparable<Animal> {
public String name;
public Cat(){
super();
name = "猫";

}

public String toString(){
return name;
}

@Override
public int compareTo(Animal o) {
if(this.toString().compareTo(o.toString())==-1){
return -1;
}else if(this.toString().compareTo(o.toString())==0){
return 0;
}else
return 1;
}
}
class Dog implements Animal,Comparable<Animal> {
public String name;
public Dog(){
super();
name="狗";
}
public String toString(){
return name;
}

@Override
public int compareTo(Animal o) {
if(this.toString().compareTo(o.toString())==-1){
return -1;
}else if(this.toString().compareTo(o.toString())==0){
return 0;
}else
return 1;
}
}
public class Demo8 {
public static void main(String[] args){

// 创建一个动物集合,插入动物园中有的几种动物
Collection<Animal> col = new ArrayList<Animal>();
col.add(new Cat());
col.add(new Dog());
col.add(new Cat());
// 一次性输出内容
System.out.println(Arrays.toString(col.toArray()));
//使用iterator遍历集合中所有内容
//并将集合内容转存储于一个数组内
Iterator<Animal> it = col.iterator();
int n = 0;
Animal[] an = new Animal[3];
while(it.hasNext()){
Animal temp = (Animal)it.next();
System.out.println("使用iterator遍历集合中所有内容:"+temp);
an[n++]=temp;
}
//并在数组中进行排序
Arrays.sort(an);
System.out.println(Arrays.toString(an));

}
匿名用户
2013-06-22
展开全部
服务器端主要代码:Socket s = null;ServerSocket ss = null;ss = new ServerSocket(8888);//创建一个线程用于接收服务器端的请求new Thread(new Runnable(){public void run(){boolean b = true;while(b){s = ss.accept(); //服务器端总是等待客户端的连接}}}).start();//下面可以写你的代码... 客户端你可以正常的代码...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-22
展开全部
对于单服务端,单客户端的例子,相信你很容易在网上找到,如果希望多线程服务器端,你只需要在服务端考虑这种情况,先用ServerSocket.accept()方法等待,当有一个client来到时,就新建一个处理client的handler实例线程,那么再循环调用accept(),就可以使用多线程的服务端了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-22
展开全部
又是你,你就不能自己写吗,lazy
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式