JAVA培训
位置:首页Java开发Java SE
 问题状态
 
J2SE Socket
 悬赏分:20  已经过期   过期时间2008-7-6 19:00
我是初学者 刚刚开始接触Scoket编程
但是我的下面这个程序就是不能运行
用debug模式能够运行一步
希望高手们能帮我解决一下这个问题
谢谢咯!!!!!
//**************server端***
import java.io.*;
import java.net.*;
public class server {
 public static void main(String[] args) {
  try{
   ServerSocket MyServer=new ServerSocket(6060);
   Socket MyClient = MyServer.accept();
   
   BufferedReader buff=new BufferedReader(new InputStreamReader(MyClient.getInputStream()));
   PrintWriter out=new PrintWriter(MyClient.getOutputStream(),true);
   
   BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
   out.println("Connect Start");
   new ServerOut(stdin,out);
      while(true){
       String str=buff.readLine();
     if(str.equals("exit")){
      break;
     }
     else{
      System.out.println(str);
     }
     Thread.sleep(50);
    }
     MyClient.close();
   }
  catch(Exception e){
   e.printStackTrace();
  }
 }
}
class ServerOut extends Thread{
 private BufferedReader in;
 private PrintWriter pw;
 public ServerOut(BufferedReader in,PrintWriter pw){
  this.in=in;
  this.pw=pw;
  start();
 }
 public void run(){
  while(true){
   try{
    String inStr=in.readLine();
    if(inStr.equals("exit")){
     pw.close();
     in.close();
     break;
    }else{
     pw.println(inStr);
    }
    sleep(300);
   }catch(Exception e){
    pw=null;
    in=null;
    throw new RuntimeException(e);
   }
  }
 }
}
//******client端
import java.io.*;
import java.net.*;
public class client {
 public static void main(String args[]) {
  try{
   Socket Client=new Socket("liang",6060);
   
   BufferedReader ins=new BufferedReader(new InputStreamReader(Client.getInputStream()));
   PrintWriter out=new PrintWriter(Client.getOutputStream(),true);
   
   BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
   
   out.println("Connet Success");
   new ClientOut(stdin,out);
   while(true){
    String str=ins.readLine();
    if(ins!=null){
     System.out.println(str);
    }
    Thread.sleep(50);
   }
  }catch(Exception e){
   e.printStackTrace();
  }
  
 }
}
class ClientOut extends Thread{
 private BufferedReader in;
 private PrintWriter pw;
 public ClientOut(BufferedReader in,PrintWriter pw){
  this.in=in;
  this.pw=pw;
 }
 public void run(){
  while(true){
   try{
    in.readLine();
    if(in.readLine().equals("exit")){
     pw.close();
     in.close();
     break;
    }else{
     pw.println(in.readLine());
    }
    sleep(300);
    }
    
   catch(Exception e){
       pw=null;
       in=null;
       throw new RuntimeException(e);
   }
     }
 }
}
提问者:aidetianshi1987@qq.com  - 头衔:开发爱好者   
    
  最佳答案
  你的线程都还没有start,怎么会有结果呢??
 Socket Client=new Socket("liang",6060);
liang是你的服务器地址吗?
回答者:575799668@qq.com  - 头衔:开发爱好者 2008-7-8 0:03:16  

 回复答案 共1条
暂无回答,欢迎您的参与!
我的回答:
回答即可得10分,被采纳则可得50分+悬赏分。
  验证码

 
 
最新问题
欢迎使用本系统,智囊团。踊跃回答,赢得积分。

使用有问题请到 帮助
 
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 |java培训QQ留言
Copyright 2007 zhinangtuan.net.cn all rights reserved 版权所有