下面代码哪错了,socket就是连不起来:import java.io.*;
import java.net.*;class TransClient{
public static void main(String[] args) throws Exception{
InetAddress ia = InetAddress.getLocalHost();
Socket s = new Socket(ia.getHostAddress(), 10005);

//源:键盘
BufferedReader bufr = 
new BufferedReader(new InputStreamReader(System.in));
BufferedReader bufIn = 
new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line = null;
while((line = bufr.readLine()) != null){
if("over".equals(line)){
break;
}
bufOut.write(line);
bufOut.newLine();
bufOut.flush();

String str = bufIn.readLine();
System.out.println("Server: " + str);
}

bufr.close();
s.close();
}

}
public class TransServer { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(10005);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println("IP: " + ip + "...connected...");

BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line = null;
while((line = bufIn.readLine()) != null){
//从客户端读到文本,然后转成大写形式反馈给客户端.
bufOut.write(line.toUpperCase());
bufOut.newLine();
bufOut.flush();
}
s.close();
ss.close();

}}

解决方案 »

  1.   


    先java TransServer 再  java TransClient
    在两个dos环境下的
      

  2.   

    好吧,请学习好多线程ok,真是亮瞎我了。没有线程你的服务端main方法运行完,ServerSoket被回收你哪来的服务端。
      

  3.   


    main方法运行完,当然就没了服务端,但是,这个程序 连String ip = s.getInetAddress().getHostAddress();
            System.out.println("IP: " + ip + "...connected...");
     都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?
      

  4.   


    main方法运行完,当然就没了服务端,但是,这个程序 连String ip = s.getInetAddress().getHostAddress();
            System.out.println("IP: " + ip + "...connected...");
     都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?
    sorry我问题理解错了,其他没问题,唯一的可能是端口号问题,打开服务看看端口号有没被占用。
      

  5.   


    main方法运行完,当然就没了服务端,但是,这个程序 连String ip = s.getInetAddress().getHostAddress();
            System.out.println("IP: " + ip + "...connected...");
     都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?
    sorry我问题理解错了,其他没问题,唯一的可能是端口号问题,打开服务看看端口号有没被占用。
    去掉客户端的 BufferedReader bufIn = 
                    new BufferedReader(new InputStreamReader(s.getInputStream()));试试