在进行socket程序开发时,遇到一个奇怪的问题,我没有启动ServerSocket()即服务端,
而下面的语句:
String ip = "localhost";
int port = 3223;
s=new Socket(ip,port)却可以执行,没有异常抛出之类的问题,正常的情况是直接跳出,不会往下运行程序;
可查看本机端口也没有3223这个端口;通过telnet连接该端口也失败,提示无法连接,
将ip改为本机ip也是同样的结果,将端口改为3224或其它任何端口都可以执行,和3223同样的结果,太奇怪了,期望高手解惑......

解决方案 »

  1.   

    我的程序是这样的:
    Socket s = null;
     try{
        s = new Socket("localhost", 3223);//如果本机没有开启3223端口,程序就不会往下运行,可偏偏往下运行了,而且换成其它任何端口,都可以往下执行
        s.close();}catch(UnknownHostException e){}catch(IOException e){}
      

  2.   

    往哪里执行了?你把代码改成下面这样,看输入什么信息Socket s = null;
     try{
      s = new Socket("localhost", 3223);
      s.close();}catch(UnknownHostException e){
       e.printStackTrace();
    }catch(IOException e){
       e.printStackTrace();
    }
      

  3.   

    改成这样还是一样:
    Socket s = null;
      try{
       s = new Socket("localhost", 3223);
       s.close();
     
    }catch(UnknownHostException e){
        e.printStackTrace();
     }catch(IOException e){
        e.printStackTrace();
     } 始终没有到异常中去,不管端口改成什么,还是继续往下执行,s.close()
      

  4.   

    请问下,这是基于udp还是tcp协议的。
      

  5.   

    我只是客户端程序,不需要accept把
      

  6.   

    s=new Socket(ip,port)这句话在任何地方,任何情况下都能执行,这里只是调用一个方法罢了,若是你在服务端写段代码:Socket client = new ServerSocket(ip).accpt();你用catch捕获异常,那么就会在没有启动服务器的情况下出现异常了.
      

  7.   

    jdk什么版本的?是java.net.Socket吗?试试socket.getOutputStream().write()写点东西?
      

  8.   

    jdk1.6
    是java.net.Socket
    都没有服务端程序,只有客户端,写Socket有什么用?
      

  9.   

    http://bbs.csdn.net/topics/3902098809月份你发过这个问题,你不是故意逗大伙玩呢吧。