Tag: socketexception

套接字 – 软件导致连接中止:recv失败

我正在尝试构建一个简单的TCPmultithreading客户端/服务器应用程序。 每当客户端( Socket )连接到ServerSocket并发送对应于下面所示的简单可序列化类的Object ( Message )时,服务器在其ObjectInputStream尝试从客户端Socket读取SocketExpection时崩溃。 Message.java package storageserver; import java.io.Serializable; public class Message implements Serializable { private static final long serialVersionUID = 27015L; public int ClientStatus; // 0 – NotLogged ::: 1 – Logged public String Command; public String[] Commands; public Message() { this.ClientStatus = 0; this.Command = null; this.Commands = null; } […]

java.net.SocketException:通过对等方重置连接:套接字写入错误提供文件时

我正在尝试使用套接字实现HTTP服务器。 如果客户端(例如浏览器)请求目录,则服务器显示可用文件列表。 当客户端请求文件时出现问题。 我收到以下错误: java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) at java.net.SocketOutputStream.write(SocketOutputStream.java:159) at cf.charly1811.java.web.RequestHandler.writeFile(RequestHandler.java:152) at cf.charly1811.java.web.RequestHandler.processRequest(RequestHandler.java:139) at cf.charly1811.java.web.RequestHandler.handleRequest(RequestHandler.java:110) at cf.charly1811.java.web.RequestHandler.run(RequestHandler.java:86) at java.lang.Thread.run(Thread.java:745) stacktrace显示问题来自writeFile()方法: private void writeFile(File request) throws IOException { InputStream byteReader = new BufferedInputStream(new FileInputStream(request)); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = byteReader.read(buffer)) != […]

HttpClient ThreadSafeClientConnManager抛出“连接重置”

我以两种不同的方式定义HttpClient:1。Plain vanilla:client = new DefaultHttpClient(); 2.线程安全: DefaultHttpClient getThreadSafeHttpClient() { HttpParams params = new BasicHttpParams(); params .setParameter( “http.useragent”, “Mozilla/5.0 (Linux; U; Android 1.1; en-us;dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2”); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, “UTF-8”); final SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme(“http”, PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme(“https”, PlainSocketFactory.getSocketFactory(), 443)); final ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(params, registry); […]

在MongoDB中打开连接的SocketTimeout

我有一个Java应用程序在MongoDB上执行一些聚合,但有时它只是挂起并抛出一个SocketTimeoutexception。 在exception之后,应用程序将运行正常(稍微,然后它可能会再次引发exception)。 我刚刚发现这个解释似乎是可能的原因,但我不确定。 我初始化MongoClient并保持与DB的连接打开。 我不确定这是否是一个问题,我应该每次都得到数据库,然后让数据库被垃圾收集(并关闭连接)。 另一种方法可能是定期ping Mongo以保持连接池“新鲜”。 使用的客户端是这样的: public class DbClient { private static MongoClient mongoClient; private static MongoDatabase db; private DbClient() {} public static void init() throws Exception { mongoClient = new MongoClient(); } public static MongoDatabase getDB() { if(mongoClient == null) throw new IllegalStateException(“Client not initialized!”); if(db == null) { db = mongoClient.getDatabase(“my_db”); […]

如何在Console上停止打印exception堆栈跟踪?

我编写了一个servlet来处理我的Web应用程序中发生的exception并将它们映射到web.xml中 java.lang.Exception /exceptionHandler 这是我在exception处理servlet service方法中所做的: @Override protected void service(HttpServletRequest req, HttpServletResponse arg1) throws ServletException, IOException { Object attribute = req.getAttribute(“javax.servlet.error.exception”); if(attribute instanceof SocketException){ // don’t do anything }else{ super.service(req, arg1); } }. 问题: 上述方法无效,堆栈跟踪正在打印到控制台。 当用户请求某些内容然后关闭其浏览器时会发生这种情况。 题: 每当发生SocketException时,如何停止将printtrace打印到JBoss控制台? 这样做的原因: 我想避免在第一天结束时看到所有日志的SocketException ,因为我无法对这些信息做任何事情。

通过对等方重置连接:套接字写入错误。 我的Java代码有什么问题

我试图从独立的Java应用程序创建和维护到主机的TCP连接。 本地端口和服务器端口相同= 8999.连接后,我必须向服务器发送一个消息: username=fred&password=abcd 。 套接字创建和消息发送的代码如下: Socket socket = new Socket(“mshxml.abcd.com”, 8999, InetAddress.getLocalHost(), 8999); OutputStream outStream = socket.getOutputStream(); while (socket.isConnected()) { try { int stx = 2, etx = 3; DataOutputStream dout = new DataOutputStream(outStream); dout.writeByte(stx); dout.writeBytes(“username=fred&password=abcd”); dout.writeByte(etx); } catch (Exception e) { e.printStackTrace(); } 但这种联系并不存在。 在调试时,我发现以下错误: java.net.SocketException: Connection reset by peer: socket write error […]

java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):connect

您好我使用Apache HTTP Client 4.0基于HTTPS协议上传服务器上的一些文件。 上传的应用程序全天候运行。 今天突然间它开始抛出这个exception – java.net.SocketException: No buffer space available (maximum connections reached?): connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:333) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:101) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:381) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) 谁能帮帮我吗? 我完全不知道发生了什么事? […]

如何解决“通过对等方重置连接:套接字写入错误”?

当我从服务器读取文件内容时,它返回以下错误消息: Caused by: java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(Unknown Source) at java.net.SocketOutputStream.write(Unknown Source) at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366) at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240) at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192) at org.apache.coyote.Response.doWrite(Response.java:504) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:383) … 28 more 我的servlet程序是 response.setContentType(“application/octet-stream”); response.setHeader(“Content-Disposition”,”attachment;filename=”+filename); FileInputStream in = new FileInputStream(new File(filepath)); ServletOutputStream output=response.getOutputStream(); byte[] outputByte=new byte[4096]; while(in.read(outputByte,0,4096)!=-1){ output.write(outputByte,0,4096);//error […]

java.net.SocketException:socket关闭TCP客户端服务器通信

我正在通过TCP创建一个java客户端/服务器应用程序,我们有两个套接字: 一个是交换消息。 二是文件传输。 我在Server中创建了两个ServerSockets以创建Socket One和Two 通过接受ServerSockets。 起初,客户端通过第一个Socket发送一些字节 这样它就可以告诉服务器它需要哪个文件。 然后,服务器通过第二个套接字将文件发送到客户端。 客户端收到文件后,尝试向服务器发送一个Transfer Done Message。 在那里我得到了关闭套接字的exception。 但是我直到现在才关闭套接字。 我只关闭发送文件的缓冲区。 即使我在发送文件后尝试再次打开socketInputStream,错误仍然是相同的。 此外,如果我不关闭发送文件的缓冲区,客户端将无法获取该文件。 服务器exception 返回消息中的错误 – java.net.SocketException:socket已关闭 客户端例外 服务器响应 – java.net.SocketException:软件导致连接中止:套接字写入错误 我究竟做错了什么?

ClientAbortException:java.net.SocketException:通过对等方重置连接:套接字写入错误

从数据库列中检索文件对象时,我经常收到以下错误。 我该如何解决这个问题? May 8, 2009 3:18:14 PM org.apache.catalina.core.StandardHostValve status WARNING: Exception Processing ErrorPage[errorCode=404, location=/error.jsp] ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293) at org.apache.catalina.connector.Response.flushBuffer(Response.java:537) at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:286) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source) Caused by: java.net.SocketException: […]