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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013907419/article/details/46389237
作业的目标
    目标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了,功夫不负有心人,下面是运行结果图:


****目标二尚未成功,有待添加******

猜你喜欢

转载自blog.csdn.net/u013907419/article/details/46389237
今日推荐