Tag: 连接

如何用Java检测Internet连接速度?

在我的Java应用程序中,如何检测Internet连接速度有多快? 例如,我在家里使用AT&T Fast DSL,我想知道是否有办法可以编写一个执行以下操作的方法: int getInternetConnectionSpeed() { … } 这将返回一个以kbps为单位的数字,例如2800kbps [2.8 M] 编辑:我问的原因是,在我的应用程序中,我可以打开多个Internet流,具体取决于用户的Internet连接速度,我希望它自动确定打开多少流而不会阻塞应用程序。

字符串连接的使用效率低下

我正在我的java-app中创建一个记录器(使用NetBeans作为IDE)突然我看到一个警告说:“在记录器中使用字符串连接效率低下”。 我的oringinal代码是 srcLogger.getLogger().log(Level.INFO,”UploadBean.doUpload completado [” + file.getName() + “]\n”); 但NetBeans建议将其转换为模板(这里的“模板”是什么意思?)给出以下代码: srcLogger.getLogger().log(Level.INFO, “UploadBean.doUpload completado [{0}]\n”, file.getName()); 这两种连接方式有什么不同,我从来没有使用过后者。 干杯。

Concat整数到字符串 – 从性能和内存的角度来看,使用字符串文字或原语?

选项1: String newStr = someStr + 3 + “]”; 选项2: String newStr = someStr + “3” + “]”; 在性能,记忆和一般实践方面哪个选项更好? 我可以使用哪些推荐的工具/方法来测量代码的内存使用情况及其性能(除了测量开始时间和结束时间以及计算差异)

Java ServerSocket连接限制?

我正在使用套接字运行一些测试,我遇到了一些奇怪的行为:ServerSocket将在第50个客户端Socket连接到它之后拒绝连接,即使该客户端套接字在下一个客户端套接字打开之前关闭,即使延迟是在连接之间添加。 以下程序是我的实验代码,它在当前状态下不会抛出任何exception并正常终止。 但是,如果Socket[] clients的数组大小增加到50以上,则在第50个连接之后尝试连接的任何客户端套接字都会被服务器套接字拒绝。 问题: 为什么50是服务器套接字拒绝套接字连接的计数? public static void main(String[] args) { try (ServerSocket server = new ServerSocket(2123)) { Socket[] clients = new Socket[50]; for (int i = 0; i < clients.length; i++) { clients[i] = new Socket("localhost", 2123); System.out.printf("Client %2d: " + clients[i] + "%n", i); clients[i].close(); } } catch (Exception e) { e.printStackTrace(); […]

使用HttpURLConnection的HTTP请求不会重用TCP连接

我已经创建了一个将GET请求发送到URL的应用程序,然后下载该页面的完整内容。 客户端向例如stackoverflow.com发送GET,并将响应转发给解析器,该解析器具有从页面中查找需要随后的GET请求下载的所有源的可靠性。 以下方法用于发送这些GET请求。 连续多次调用,解析器返回的URL。 这些URL中的大多数位于同一主机上,并且应该能够共享TCP连接。 public static void sendGetRequestToSubObject(String RecUrl) { URL url = new URL(recUrl.toString()); URLConnection connection = url.openConnection (); InputStreamReader isr = new InputStreamReader(connection.getInputStream()); } 每次调用此方法时,都会创建一个新的TCP连接(使用TCP 3次握手),然后在该连接上发送GET。 但我想重用TCP连接,以提高性能。 我想,因为每次调用方法时我都会创建一个新的URL对象,这就是它的工作方式…… 也许有人可以帮助我以更好的方式做到这一点? 谢谢!

jdbc4 CommunicationsException

我有一台运行java应用程序的机器与在同一实例上运行的mysql实例交谈。 该应用程序使用mysql的jdbc4驱动程序。 我随机时间不断收到com.mysql.jdbc.exceptions.jdbc4.CommunicationsException。 这是整个信息。 无法打开JDBC Connection进行事务处理; 嵌套exception是 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was25899 milliseconds ago.The last packet sent successfully to the server was 25899 milliseconds ago, which is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing […]

启动Derby连接时出现“SecurityException:sealed violation”

我需要使用“ org.apache.derby.drda.NetworkServerControl ”类从我的java应用程序启动derby服务器。 当我尝试启动服务器时,它会抛出exception。 码: NetworkServerControl server = null; server=new NetworkServerControl(InetAddress.getLocalHost(),1527,”user”,”123″) server.start(new PrintWriter(System.out)); 错误: Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.impl.store.raw.xact is sealed 谁能告诉我这个错误的原因?

是否可以在两个类之间使用RMI双向?

我想在两个类(A和B)之间共享一些信息,它们运行在不同的java程序中。 我没有编写完整的通信协议,而是想为此目的使用java内置rmi类。 目前,B类能够远程运行属于A类的方法。 是否有可能在A类中使用相同的“连接”来调用B类的方法? 否则我可能要实施第二个rmi服务…… BR, 马库斯

处理连接错误和JSoup

我正在尝试创建一个应用程序来从网站上的多个页面中删除内容。 我正在使用JSoup进行连接。 这是我的代码: for (String locale : langList){ sitemapPath = sitemapDomain+”/”+locale+”/”+sitemapName; try { Document doc = Jsoup.connect(sitemapPath) .userAgent(“Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21”) .timeout(10000) .get(); Elements element = doc.select(“loc”); for (Element urls : element) { System.out.println(urls.text()); } } catch (IOException e) { System.out.println(e); } } 一切都在大部分时间都很完美。 但是我想要做一些事情。 首先,有时404状态将返回或500状态可能是301.使用下面的代码,它将只打印错误并移动到下一个URL。 我希望能够做的是尝试返回所有链接的url状态。 如果页面连接打印200,如果不打印相关的状态代码。 其次我有时会抓住这个错误“java.net.SocketTimeoutException:read […]

Netty 4多个客户端

我需要让客户端能够建立很多连接。 我使用Netty 4.0。 不幸的是,所有现有示例都没有显示如何创建大量连接。 public class TelnetClient { private Bootstrap b; public TelnetClient() { b = new Bootstrap(); } public void connect(String host, int port) throws Exception { try { b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer()); Channel ch = b.connect().sync().channel(); ChannelFuture lastWriteFuture = null; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (;;) { String line = in.readLine(); […]