草庐IT

java - HttpURL连接 : BindException when creating many connections

出于测试/基准测试目的,我想编写一个Java程序来循环执行以下任务:通过HTTPGET从服务器加载数据(根据接收到的数据生成答案——此时不重要)通过HTTPPOST将答案发送到同一台服务器这个循环同时在多个线程上运行。启动后,程序可以在短时间内正常运行,并且每个线程每秒能够执行约300个循环(网络服务器在同一台机器上运行)。但5-7秒后,我得到了BindException:Addressalreadyinuse。在20-30秒的冷却时间后重新启动程序会导致相同的行为;当我不等待立即重新启动它时,它立即崩溃......所以我想这可能是绑定(bind)资源的问题。这是一种使用HttpURL

java - 寻找 java.net.SocketException : No buffer space available

嗨,我有一个非常难看的问题:java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?)它是客户端-服务器应用程序。客户端是WindowsXPSP232b,两block网卡coreduo。Java1.6。u7。应用程序为本地通信打开了几个服务器套接字,并为rmi到jboss服务器打开了几个客户端套接字。几小时/几天后!我无法打开任何新的客户端套接字来与服务器进行通信。服务器套接字仍然有效。Windowsnetstat显示130到150个连接。手动尝试时,我在~3500个连接后耗尽了缓冲区!我试过:检查我们使用的每个套接字,我们也将其关闭。在后台运行nets

java - 中断连接套接字

我有一个GUI,其中包含要连接的服务器列表。如果用户单击它连接到它的服务器。如果用户单击第二个服务器,它将断开第一个并连接到第二个。每个新连接都在一个新线程中运行,以便程序可以执行其他任务。但是,如果用户在第一个服务器仍在连接时单击第二个服务器,则有两个同时连接。我正在使用它进行连接,并且connect()是阻塞的行:Socketsocket=newSocket();socket.connect(socketAddress,connectTimeout);我想也许Thread.currentThread().interrupt();会工作,但没有。我是否必须稍微重构我的代码,以便它继续

Java 多播生存时间始终为 0

我在为数据报数据包设置TTL时遇到问题。在将数据包发送到multicastSocket之前,我在数据包上调用了setTTL(...)方法,但是如果我使用ethereal捕获数据包,则TTL字段始终设置为0 最佳答案 基本上,您必须设置一个特殊的系统属性,告诉JVM使用IPv4堆栈:-Djava.net.preferIPv4Stack=true 关于Java多播生存时间始终为0,我们在StackOverflow上找到一个类似的问题: https://stacko

java - 转发端口

我对基于套接字的通信的软件级端口转发/隧道有一个简单的要求。我有一个使用套接字的源服务器和端口。这是一个在windows和linux中都可以运行的java程序,这无关紧要。我有不断向这个端口发送数据的设备。可能存在双向通信我想将此数据重定向到另一个远程服务器和端口。因此,对于客户而言,每当我移动我的应用服务器时,他们都不必担心IP地址会发生变化。有没有我可以用来配置和执行此操作的工具/守护程序/服务程序?我试过SSH,但据我所知,这需要启用SSH协议(protocol)的服务器。就我而言,这不适用。我也尝试过使用JSch,但这又是Java格式的SSH实现。有人可以指点一下吗?是否可以在

java - 将正则表达式应用于 Java I/O 流

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我寻找一个将正则表达式应用于JavaI/O流的示例,它不只是将流转换为字符串,因为我想保留二进制数据。网上的例子大多以文本数据为主...

Java检测关闭的流

我有一个由OutputStream和InputStream组成的通用套接字实现。完成一些工作后,我将关闭OutputStream。完成此操作后,我的InputStream的read()方法会在无限长的时间内返回-1,而不是像我预期的那样抛出异常。我现在不确定最安全的路线,所以我有几个问题:我可以安全地假设-1只是流关闭时返回?没有办法重新创建IO当连接被强行断开?我应该发送一个数据包来告诉我的InputStream它应该关闭而不是前两种方法吗?谢谢! 最佳答案 -1是流末尾的预期行为。参见InputStream.read():Rea

java - 检查 Java Socket 中的传入数据

我正在用Java编写一个简单的聊天,我想检查BufferedReader上是否有一些数据在等待。我读过有关NIO的信息,但我并不完全理解它。这是我的一些代码:publicvoidSend(Stringdata){out.println(data);}publicStringRecv(){if(dataIncomming){try{returnin.readLine();}catch(IOExceptione){System.err.println("Send:ErroronBufferedReader.readLine()-IOException");}}elsereturn"";}不

java - 如何知道FTP欢迎消息的结束

我的问题是我正在创建一个FTP客户端,到目前为止它的工作完美无缺,除了一个小细节,这一直困扰着我。我需要知道FTP欢迎消息跨越了多少行...这是NotAcceptable!privateSocketconnection;privatePrintWriteroutStream;privateScannerinStream;publicvoidInitiateConnection()throwsIOException{log.Info(this,"Initiatingconnectiontohost:"+host+":"+port);connection=newSocket(host,po

java - 好的客户端套接字池

我需要管理从我的Java应用程序到外部服务器的长时间运行的TCP套接字连接。我正在寻找一个好的套接字池,这样我就可以重新使用套接字。有什么建议吗? 最佳答案 您可以看看在CommonsPool之上构建套接字池. 关于java-好的客户端套接字池,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/938784/