Java语言程序设计网络通信.pptVIP

  • 7
  • 0
  • 约1.84万字
  • 约 76页
  • 2019-07-17 发布于辽宁
  • 举报
客户端程序Talk类 行号 Talk.java程序代码 1 import java.io.*; import .*; public class Talk { public static void main(String[] args) { try { Socket clientSocket=new Socket(,2000); //建立客户端的Socket /* 建立接收服务器端信息的输入流对象br */ BufferedReader br=new BufferedReader(new InputStreamReader(clientSocket.getInputStream())) ; 2 3 4 5 6 7 8 9 客户端程序Talk类 10 /* 建立向服务器端写出信息的输出流对象pw */ PrintWriter pw=new PrintWriter(clientSocket.getOutputStream()); /* 建立接收本地客户端控制台的输入信息的输入流对象client_br */ BufferedReader client_br=new BufferedReader(new InputStreamReader(System.in)); System.out.println(聊天客户端已经启动...); String client_info=client_br.readLine(); //本地客户端控制台的输入信息 System.out.println(您输出的信息是:+client_info); while(!client_info.equals(bye)){//客户端控制台输入bye时程序结束 pw.println(client_info); //把信息传给服务器端 11 12 13 14 15 16 17 18 19 客户端程序Talk类 20 pw.flush(); //刷新输出流 System.out.println(来自服务器的信息是:+br.readLine()); //信息来自服务器端 client_info=client_br.readLine(); //循环接收下一次的客户端控制台输入信息 } br.close(); pw.close(); clientSocket.close(); } catch (Exception ex) { } } } 21 22 23 24 25 26 27 28 29 30 31 32 33 2) 3) 1) 编译好两个源程序,先启动TalkServer类,再启动Talk类; 在客户端程序控制台窗口中输入“你好,管理员”,在服务器端窗口中会看到此信息; 当在两个窗口中输入“bye”时,程序退出。 【运行步骤】 【运行结果】 (如图所示) 本示例客户端与服务器端都可以接收和发送信息,将输入/输出流BufferedReader和PrintWriter对象连接到远程计算机,并将Socket发送给对方(注意:这里的发送有一定的顺序,是客户端先发送Socket给服务器,服务器ServerSocket的accept()方法接收后,再生成一个Socket发送给客户端),如图所示 TalkServer类:serverSocket=new ServerSocket(2000);构造方法参数为要监听的端口号,无需带IP地址,且端口号与客户端设定的端口号相同; Talk类:clientSocket=new Socket(,2000);构造方法参数需带IP地址和要传输客户端Socket到指定的服务器端口号。 TalkServer类与Talk类都有一个while循环,用以判断本地控制台输入的信息,当控制台输入“bye”时程序结束 程序结束时需要关闭各个对象,注意TalkServer类中关闭对象的次序!见代码第40~43行。 【代码说明】 TalkServer类与Talk类代码对比: 创建套接字时 创建输入与输出流 注意 TalkServer类与Talk类 【运行结果】 (如图所示) 读者可以将Talk类代码:clientSocket=new Socket(,2000); 其中的IP地址改为局域网内其它机器的IP地址,并使TalkServer类运行在那台计算机上,测试一下看看聊天程序是否可以运行

文档评论(0)

1亿VIP精品文档

相关文档