A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 廖力 于 2012-11-13 12:36 编辑

网络编程视频 我看到tcp那里,跟着老师打出代码,用eclipse达不到开两个控制台的效果,而且也出现不了老师那效果。
改用控制台,就报下面那个错误,这是为什么呢?还想问问你们都是怎么做这示例的呢?

贴上代码
file:LoginSer
  1. public class LoginSer {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 ServerSocket ss;
  7.                 try {
  8.                         ss = new ServerSocket(10008);
  9.                
  10.                
  11.                 while(true){
  12.                         Socket s = ss.accept();
  13.                         new Thread(new UserThread(s)).start();
  14.                 }
  15.                 } catch (IOException e) {
  16.                         // TODO Auto-generated catch block
  17.                         e.printStackTrace();
  18.                 }
  19.         }

  20. }

  21. class UserThread implements Runnable{

  22.         private Socket s;
  23.         public UserThread (Socket s){
  24.                 this.s = s;
  25.         }
  26.         
  27.         @Override
  28.         public void run() {
  29.                
  30.                 String ip = s.getInetAddress().getHostAddress();
  31.                 System.out.println(ip+"……connected");
  32.                
  33.                 try{
  34.                         
  35.                         for(int x=0;x<3;x++){
  36.                                 BufferedReader bufIn =
  37.                                         new BufferedReader(new InputStreamReader(s.getInputStream()));
  38.                                 String name = bufIn.readLine();
  39.                                 BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));
  40.                                 String line = null;
  41.                                 boolean flag = false;
  42.                                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  43.                                 while((line=bufr.readLine())!=null){
  44.                                         if(line.equals(name)){
  45.                                                 flag = true;
  46.                                                 break;
  47.                                         }
  48.                                 }
  49.                                 if(flag){
  50.                                         System.out.println(name+",已登录");
  51.                                         out.println(name +",欢迎光临");
  52.                                         break;
  53.                                 }
  54.                                 else{
  55.                                         System.out.println(name+",尝试登陆");
  56.                                         out.println(name +",用户名不存在");
  57.                                 }
  58.                         }
  59.                         
  60.                         
  61.                 }catch (Exception e){
  62.                         throw new RuntimeException(ip+" 检验失败");
  63.                 }
  64.                
  65.                
  66.         }
  67.         
  68.         
  69. }
复制代码
file LoginClient.java
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6. import java.io.*;

  7. public class LoginClient {

  8.         /**
  9.          * @param args
  10.          */
  11.         public static void main(String[] args) {
  12.                 Socket s;
  13.                 try {
  14.                         s = new Socket("127.0.0.1",10008);
  15.                
  16.                
  17.                 BufferedReader bufr =
  18.                         new BufferedReader(new InputStreamReader(System.in));
  19.                
  20.                 PrintWriter out = new PrintWriter(s.getOutputStream());
  21.                
  22.                 BufferedReader bufin =
  23.                         new BufferedReader(new InputStreamReader(s.getInputStream()));
  24.                
  25.                 for(int x=0;x<3;x++){
  26.                         String line = bufr.readLine();
  27.                         if(line==null)
  28.                                 break;
  29.                         
  30.                         out.println(line);
  31.                         
  32.                         String info = bufin.readLine();
  33.                         
  34.                         System.out.println("info"+info);
  35.                         
  36.                         if(info.contains("欢迎"))
  37.                                 break;
  38.                 }
  39.                 bufr.close();
  40.                 s.close();
  41.                
  42.                 } catch (UnknownHostException e) {
  43.                         // TODO Auto-generated catch block
  44.                         e.printStackTrace();
  45.                 } catch (IOException e) {
  46.                         // TODO Auto-generated catch block
  47.                         e.printStackTrace();
  48.                 }

  49.         }

  50. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
根据你截图的错误UnsupportedClassVersionError,出现java.lang.UnsupportedClassVersionError 错误的原因是因为我们使用高版本的 JDK 编译的 Java class 文件试图在较低版本的 JVM 上运行,所报的错误。
因为,高版本的 JDK 生成的 class 文件使用的格式,可能与低版本的 JDK 的 .class 文件格式不同。这样,低版本的 JVM 无法解释执行这个 .class 文件,会抛出 java.lang.UnsupportedClassVersionError 不支持的 Class 版本错误,建议你用低版本的JDK生成以下。
至于在doc怎样演示
(1)打开两个cmd.exe,操作如下:
LoginSer:
javac LoginSer.java//编译
java LoginSer//运行
如图:

LoginClient
javac LoginClient.java//编译
java LoginClient//运行
如图:

连接成功后如图



aa.jpg (35.5 KB, 下载次数: 18)

aa.jpg

bb.jpg (29.37 KB, 下载次数: 19)

bb.jpg

cc.jpg (35.35 KB, 下载次数: 21)

cc.jpg

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
用eclipse的话,可以分成两个文件,先启动服务端程序,后启动客户端程序,这样就可以看到两个控制台的结果了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马