您的位置:首页 > 理论基础 > 计算机网络

《Java程序设计》第三次作业:网络编程

2015-06-29 22:58 489 查看
作业的目标

目标1:Socket简单应用。 把教材P238-230中例11-5代码输入到我们的代码编辑器,调试并运行(80分)。

目标2:博文统计程序。 对“liem烧心”同学的博文(网址链接,网页源代码链接)进行统计,得到 博文总数、每篇博文(标题、网址、撰写时间、阅读数、评论数),输出到文本文件,或者是数据库中(需要思考我们的数据表Table,应该包括哪些字段)(90分)。

实现方式

对于目标1,我们认真阅读,花一定的时间(约1-2小时),应该每个同学都可以完成。细心+耐心。

对于目标2,思路是什么呢?

(1)教材P231例11-3中,告诉了我们怎样输出网页源代码到控制台,不妨先尝试一下。

(2)作业中,我们需要哪些信息呢?这些信息在什么地方可以获得呢?

目标1:Socket简单应用。
教材P238-230中例11-5


程序一:

//例题11-5,Socket简单应用,客户端与服务器的通信
//客户端程序ChatClient.java
package eleven;
import java.io.*;
import java.net.*;
public class ChatClient {
public static void main(String args[]){
try{
Socket socket=new Socket("127.0.0.1",400);
System.out.println("输入你要说的话,如果要退出输入bye");
//由系统标准输入设备构造BufferedReader对象
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readLine;
readLine=sin.readLine();
while(! readLine.equals("bye")){
os.println(readLine);
os.flush();System.out.println("Client:"+readLine);
System.out.println("Server:"+is.readLine());
}
os.close();
is.close();
socket.close();
}catch(Exception e){
System.out.println("Error"+e);
}
}
}


程序二:

//服务器端程序ChatServer.java
package eleven;
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class ChatServer {
public static void main(String args[]){
try{
ServerSocket server=null;
try{
server=new ServerSocket(400);
System.out.println("准备好了,退出输入bye");
}catch(Exception e){
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e){
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(! line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}


运行结果:
刚开始自己并没有能够在DOS下运行出来,想了好久,也尝试了许多,后来通过查找错误信息提示,发现是因为程序在在JAVA包里面的缘故,把程序从package里面移除出来重新编译运行就OK了,功夫不负有心人,下面是运行结果图:



****目标二尚未成功,有待添加******
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: