当前位置:编程学习 > JAVA >>

socket问题,请高手支招!

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

}catch(UnknownHostException e){

}catch(IOException e){

} --------------------编程问答-------------------- 往哪里执行了?

你把代码改成下面这样,看输入什么信息

Socket s = null;
 try{
  s = new Socket("localhost", 3223);
  s.close();

}catch(UnknownHostException e){
   e.printStackTrace();
}catch(IOException e){
   e.printStackTrace();
} --------------------编程问答-------------------- 典型吃掉异常的代码样本 --------------------编程问答-------------------- 改成这样还是一样:
Socket s = null;
  try{
   s = new Socket("localhost", 3223);
   s.close();
 
}catch(UnknownHostException e){
    e.printStackTrace();
 }catch(IOException e){
    e.printStackTrace();
 } 

始终没有到异常中去,不管端口改成什么,还是继续往下执行,s.close() --------------------编程问答-------------------- 别中毒了 --------------------编程问答--------------------
我也想知道 --------------------编程问答-------------------- --------------------编程问答-------------------- 请问下,这是基于udp还是tcp协议的。
--------------------编程问答-------------------- 应该是TCP --------------------编程问答-------------------- 我不信,
是不是你之前的服务端进程没关掉。 --------------------编程问答-------------------- 绝对关了,而且改成任何端口都是这样的,即使以前没关,改了连接端口总该没问题吧 --------------------编程问答-------------------- 没有调用accept方法 --------------------编程问答-------------------- 我只是客户端程序,不需要accept把 --------------------编程问答-------------------- s=new Socket(ip,port)这句话在任何地方,任何情况下都能执行,这里只是调用一个方法罢了,若是你在服务端写段代码:Socket client = new ServerSocket(ip).accpt();你用catch捕获异常,那么就会在没有启动服务器的情况下出现异常了. --------------------编程问答-------------------- jdk什么版本的?

是java.net.Socket吗?

试试socket.getOutputStream().write()写点东西?

--------------------编程问答-------------------- jdk1.6
是java.net.Socket
都没有服务端程序,只有客户端,写Socket有什么用? --------------------编程问答-------------------- http://bbs.csdn.net/topics/390209880

9月份你发过这个问题,你不是故意逗大伙玩呢吧。 --------------------编程问答-------------------- 绝对不是,我也没有那么多时间 --------------------编程问答-------------------- 这里是执行了,但是却没有连接上服务器端,所以发送的报文服务器都收不到。 --------------------编程问答-------------------- 没有服务器,只是一段客户端程序 --------------------编程问答-------------------- =.=其实这么处理异常不如不处理~~~~你可以去看看异常处理那块的东西~~~~~ --------------------编程问答-------------------- 就在一台电脑上有这种情况,可用端口扫描却没发现这个端口
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,