补充作业三的,今周是17周,按照老师的作业要求,先完成作业以熟悉书本上的事列,熟悉代码,并加以学习!
对于目标1,我们认真阅读,花一定的时间(约1-2小时),应该每个同学都可以完成。细心+耐心。
对于目标2,思路是什么呢?
(1)教材P231例11-3中,告诉了我们怎样输出网页源代码到控制台,不妨先尝试一下。
(2)作业中,我们需要哪些信息呢?这些信息在什么地方可以获得呢?
下面是教材P231中的例题
(1)客户端程序
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对象
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")){
//将从系统标准输入读入的字符串输出到Server
os.println(readline);
os.flush();//刷新输出流,使服务器端马上收到该字符串
//输出上打印读入的字符串
System.out.println("Client:"+readline);
//从服务器端读入一字符串,并打印到显示器上
System.out.println("Server:"+is.readLine());
readline=sin.readLine();//从系统标准输入读入一字符串
} //循环结束
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e){
System.out.println("Error"+e); //出错,则打印出错信息
}
}
}
(2)服务器端程序
<pre name="code" class="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;
//由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader is =new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
//由系统标准输入设备构造BufferedReader对象
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
//在标准输出上打印从客户端读入的字符串
System.out.println("Client:"+is.readLine());
line = sin.readLine();
//从标准输入读入一字符串
while(! line.equals("bye")){ //如果字符串为“bye”,则停止循环
os.println(line); //向客户端输出该字符串
os.flush(); //刷新输出流,使Client马上收到该字符串
//在系统标准输出上打印读入的字符串
System.out.println("Server:"+line);
//从Client读入一字符串,并打印到标准输出上
System.out.println("Client:"+is.readLine());
line = sin.readLine(); //从系统标准输入读入一字符串
} //继续循环
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
server.close(); //关闭ServerSocket
}catch(Exception e){
System.out.println("Error:"+e); //出错,打印出错信息
}
}
}
注:由于在学校机房里完成输入代码和输入结果,所以在同一台机上演示本程序,打开DOS窗口运行服务器端程序显示文件位置不对,所以显示不到DOS内容。
<img src="https://img-blog.csdn.net/20150629110924952?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzkxNDM5Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
结果图:
<img src="https://img-blog.csdn.net/20150629110452381?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzkxNDM5Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
问题:怎么解决注释的错误?