socket.connect(endpoint, 2000)被拒绝还是超时?

问题描述

服务端测试代码:publicclassSocketLancher{publicstaticvoidmain(String[]args)throwsException{ServerSocketss=newServerSocket(2659,50);while(true){}}}参数50为Server的连接队列,为便于异常出现,这里一直没有执行accept操作,当连接数大于50后,客户端的connect操作就会出现异常。经测试,将ServerSocket运行在windowxp,客户端抛出的异常为:java.net.ConnectException:Connectionrefused:connectatjava.net.TwoStacksPlainSocketImpl.socketConnect(NativeMethod)atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)atjava.net.Socket.connect(Socket.java:579)atorg.gradle.socket.Client.run(Client.java:21)atjava.lang.Thread.run(Thread.java:724)而Server运行在linux上,客户端抛出的异常为:java.net.SocketTimeoutException:connecttimedoutatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)atjava.net.Socket.connect(Socket.java:579)atorg.gradle.socket.Client.run(Client.java:21)atjava.lang.Thread.run(Thread.java:724)具体是什么原因导致异常的不同?是jdk对不同操作系统做了不同的实现?还是jvm或系统级别的哪些设置导致的?哪位知道讲解一下吧,多谢!

解决方案

解决方案二:
你自己都说了,jvm在不同的系统有不同实现。jvm在他所支持的平台上的实现方式肯定是不一样的,比如windows的jvm显然不能到linux上去运行,这就是你在载jre的时候为什么要选择不同的版本的原因了。

时间: 2024-11-03 22:50:41

socket.connect(endpoint, 2000)被拒绝还是超时?的相关文章

socket-Android蓝牙Socket.connect出现IOException,UUID相关

问题描述 Android蓝牙Socket.connect出现IOException,UUID相关 最近在用安卓做一个能实现蓝牙通信的APP,很邪门的是有时会连的上,有时会连不上,检查是发现socket.connect会报IOException,查阅大量资料后,也试过更换各种创建socket的方式,问题依旧.在stackoverflow,有一个大神也遇到类似情况,文章如下http://stackoverflow.com/questions/22767989/android-bluetoothsoc

VC socket Connect 超时时间设置

设置connect超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案.偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(<Windows网络编程技术>原话).使用方法与解释请见<Windows网络编程技术>. 在使用此函数前,需先将socket设置为非阻塞模式,这样,在connect时,才会立马跳过,

java中socket connect超时的设置方法

1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数 2.调用connect,正常情况下,因为TCP三次握手需要一些时间:而非阻塞调用只要不能立即完成就会返回错误,所以这里会返回EINPROGRESS,表示在建立连接但还没有完成. 3.在读套接口描述符集(fd_set rset)和写套接口描述符集(fd_set wset)中将当前套接口置位(用FD_ZERO().FD_SET()宏),并设置好超时时间(struct timeval *timeout) 4.调

socket Connect连问题 怎么样才能快速的确认连接是否成功

问题描述 try{boolstatusconn=falseIPAddressipaddress=IPAddress.Parse(acustatus.Acuip);//服务器IPIPEndPointserverIP=newIPEndPoint(ipaddress,acustatus.Port);send=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);send.Connect(serverIP);if

求一个例子:java socket 采用ObjectInputStream序列化收发文件例子

问题描述 求一个例子:java socket 采用ObjectInputStream序列化收发文件例子 求一个:java socket 采用ObjectInputStream序列化收发文件例子求一个:java socket 采用ObjectInputStream序列化收发文件例子 解决方案 我参考 这个 例子 解决我的问题 http://bbs.csdn.net/topics/200033850 解决方案二: http://www.cnblogs.com/feiyun126/p/3921466.

Socket网络编程(3)--两端通信

 上篇博文:http://www.cnblogs.com/wolf-sun/p/3329558.html      介绍了客户端连接服务端,一对一,多对一的情况,下面实现服务器接收消息的功能.LZ这些弄的比较慢,也是边学习,边动手实现的.具体步骤在注释中写的比较清楚,不懂的可以留言,LZ会尽快回复.共同学习,共同进步. 接收消息时机       什么时候接收消息?当服务器开始监听,有客户端连接,并且连接成功,此时负责通信的Socket已经创建,此时就可以接收消息了,可以通过Socket的Rece

asio socket设置 server地址与端口的两种方式

 1. 用解释器的方法, 常用来解析域名, 如 // query("www.163.com","80"), 也可以 query("www.163.com","telnet") // echo          7/tcp// ftp           21/tcp                 # File Transfer Protocol (Control)// telnet        23/tcp        

boost::asio译文

Christopher Kohlhoff Copyright 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_0.txt文件或从http://www.boost.org/LICENSE_1_0.txt) Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型. 综述 基本原理 应用程序与外界交互的方式有很多,可通过文件,网络,串口或控制台.例如在网络通信中,完成独

使用Boost.Asio编写通信程序

摘要:本文通过形像而活泼的语言简单地介绍了Boost::asio库的使用,作为asio的一个入门介绍是非常合适的,可以给人一种新鲜的感觉,同时也能让体验到asio的主要内容.   Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型. ASIO的同步方式 ASIO库能够使用TCP.UDP.ICMP.串口来发送/接收数据,下面先介绍TCP协议的读写操作.对于读写方式,ASIO支持同步和异步两种方式,首先登场的是同步方式,下面请同步方式自我介绍