《Java程序设计》第三次作业:网络编程
2015-05-29 16:56
435 查看
作业的目标
目标1:Socket简单应用。 把教材P238-230中例11-5代码输入到我们的代码编辑器,调试并运行(80分)。
目标2:博文统计程序。 对“liem烧心”同学的博文(网址链接,网页源代码链接)进行统计,得到 博文总数、每篇博文(标题、网址、撰写时间、阅读数、评论数),输出到文本文件,或者是数据库中(需要思考我们的数据表Table,应该包括哪些字段)(90分)。
以下是目标一的源代码及运行结果
客户端程序ChatClient.java
下面是运行结果
对此,目标一已完成
注意:
(1)本程序由两部分组成,一是服务器端程序,二是客户端程序。编译服务器端和客户端程序时可以不分先后顺序,但在运行服务器端和客户端程序时,首先启动服务器端,然后再启动客户端。在客户端输入字符后,服务器端可以显示;在服务器端输入信息后,在客户端也可以显示。结束通信时,先在客户端输入bye,再在服务器端输入bye。
(2)在同一台计算机演示本程序时,先打开一个DOS窗口,运行服务器端程序。不要关闭,再在另外打开一个DOS窗口,运行客户端程序。
目标1:Socket简单应用。 把教材P238-230中例11-5代码输入到我们的代码编辑器,调试并运行(80分)。
目标2:博文统计程序。 对“liem烧心”同学的博文(网址链接,网页源代码链接)进行统计,得到 博文总数、每篇博文(标题、网址、撰写时间、阅读数、评论数),输出到文本文件,或者是数据库中(需要思考我们的数据表Table,应该包括哪些字段)(90分)。
以下是目标一的源代码及运行结果
客户端程序ChatClient.java
import java.io.*; import java.net.*; public class ChatClient { public static void main(String args[]){ try{ Socket socket = new Socket("127.0.0.1",4000); System.out.println("输入你要说的话,如果要退出输入bye"); BufferedReader sin = new BufferedReader(new InputStreamReader(System.in)); 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()); readline=sin.readLine(); } os.close(); is.close(); socket.close(); }catch(Exception e){ System.out.println("Error"+e); } } }服务器端程序ChatServer.java
import java.io.*; import java.net.*; import java.applet.Applet; @SuppressWarnings("unused") public class ChatServer { public static void main(String args[]){ try{ ServerSocket server=null; try{ server = new ServerSocket(4000); System.out.println("准备好了,退出输入bye"); }catch(Exception e){ System.out.println("can't 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); } } }
下面是运行结果
对此,目标一已完成
注意:
(1)本程序由两部分组成,一是服务器端程序,二是客户端程序。编译服务器端和客户端程序时可以不分先后顺序,但在运行服务器端和客户端程序时,首先启动服务器端,然后再启动客户端。在客户端输入字符后,服务器端可以显示;在服务器端输入信息后,在客户端也可以显示。结束通信时,先在客户端输入bye,再在服务器端输入bye。
(2)在同一台计算机演示本程序时,先打开一个DOS窗口,运行服务器端程序。不要关闭,再在另外打开一个DOS窗口,运行客户端程序。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Linux socket 初步
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序