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

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

2015-05-29 16:56 435 查看
作业的目标
    目标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 socket