Tag: 套接字

我们如何在客户端套接字上区分服务器套接字连接的exception?

我想区分客户端套接字上的服务器连接关闭的exception,例如服务器套接字由于空闲超时而关闭,因为必须在客户端生成原因作为空闲超时exception。 同样用于连接失败的连接失败exception等。 请帮我解决这个问题。 提前致谢。

套接字Backlog行为

如果Serversocket在其待办事项中有充满请求并且执行长时间运行的作业,则套接字行为将是什么。 当我尝试这个,从Windows telnet是好的,它连接。 但是从unix它得到“拒绝连接” 。 我的应用程序是用java编写的,并在IBM jvm上运行。 顺便说一下,我的应用程序没有响应来自unix的telnet。 没有重新调整意味着它正在写“tyring ……”并挂起,而不是拒绝或连接。 任何人都可以certificate这种行为吗? 谢谢。

Android TCP通信速度太慢

我的TCP发送器类是TCPSenderTask作为客户端,我使用TCP服务器的服务。 当我尝试发送数据时,数据传输速度太慢。 我找不到原因。 package com.example.sampletcpclient; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.net.Socket; import java.util.ArrayList; import com.example.model.Order; import android.content.Context; import android.os.AsyncTask; import android.widget.TextView; class TCPSenderTask extends AsyncTask { Context mContext; TextView tv; BufferedReader reader; PrintWriter writer; Socket socket; ArrayList outgoingOrders; ObjectOutputStream oos; public TCPSenderTask(Context mContext, ArrayList outgoingOrders, TextView tv) { this.mContext = mContext; […]

套接字 – 软件导致连接中止: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; } […]

如何在客户端和服务器之间建立多个IO流?

我正在用Java创建一个客户端/服务器对,目前只支持通过PrintWriters和BufferedReaders进行隔行扫描的文本通信,这些通信包裹在服务器和客户端的IO流中。 我想实现一个函数,它使用Image [Input / Output] Stream以一定的间隔从服务器向客户端发送BufferedImage。 问题是我希望在单独的线程中发送/接收BufferedImages,以便客户端/服务器仍然可以发送/接收文本命令。 我可以创建多个流或套接字吗? 如果是这样,那是最好的方法吗?

通过套接字发送图像

我通过Socket(客户端 – 服务器)发送图像有一个小问题,我只接收“UTF”文本而不是图像对象,代码有问题吗? 这段代码只发送UTF文本并在服务器端收到,我使用UTF文本识别服务器端的图像(名称),识别后可以将图像发送给客户端 /* * ServerSide * */ package Interface_class; import configuraciones.procesador; import java.awt.image.BufferedImage; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketTimeoutException; import javax.imageio.ImageIO; /** * * @author TheCoder */ public class img_monitor extends Thread{ ServerSocket serverSocket; Socket server; BufferedImage bimg; byte[] bytes; public img_monitor() { try{ //Opening […]

如何在轴上禁用SSLv2套接字协议

使用axis消耗Web服务时遇到问题。这是因为axis发送了SSLv2 ClientHello,而提供webservice的服务器不支持SSLv2协议。 要解决此问题,我必须禁用此协议。 在Java中禁用它的代码是: SocketFactory socketFactory = SSLSocketFactory.getDefault(); SSLSocket socket = (SSLSocket) socketFactory.createSocket(hostname, port); socket.setEnabledProtocols(new String[] {“SSLv3”, “TLSv1”}); 我指的是这些链接 。 现在,问题是当我使用axis来使用web服务时如何禁用此协议?

ObjectOutputStream永远挂起

我有一个使用SSLSocket连接到服务器的客户端。 接下来,我尝试使用ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream());创建一个OOS ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream()); 如果一切都在服务器端运行良好,这很好。 但是,我想在客户端尝试创建ObjectOutputStream,但如果在60秒内没有发生,请记录错误并继续处理。 我没有看到任何超时选项。 有关如何做到这一点的任何例子? SSLSocket sslsocket; try { System.setProperty(“javax.net.ssl.trustStore”, ); System.setProperty(“javax.net.ssl.trustStorePassword”, ); SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); sslsocket = (SSLSocket) sslsocketfactory.createSocket(InetAddress.getLocalHost(), ); } catch (Throwable e) { logger.logError(e.getMessage()); return null; } // This is where it hangs forever ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream()); oos.flush(); […]

管理客户端套接字池

我需要从Java应用程序管理与外部服务器的长时间运行的TCP套接字连接。 我正在寻找一个好的套接字池,所以我将能够重新使用套接字。 还有另一个解决方案而不是org.apache.commons.pool2 ?

如何让客户端为每个其他客户端创建一个套接字

我需要帮助思考客户连接并与所有其他客户进行通信的设计。 我认为每个客户端将同时需要一个ServerSocket来监听来自其他客户端的传入连接,以及一个Socket用于启动与其他客户端的连接。 我在localhost上测试,所以如果我使用端口号来跟踪连接,我会遇到这种情况: Socket A (OS assigned port: a) initiates connection with ServerSocket B (known port: 2222) Both clients record that connection (a, 2222) is made Socket B (OS assigned port: b) initiates connection with ServerSocket A (known port: 1111) Both clients record that connection (b, 1111) is made 我们每对客户端应该有1个连接,所以上面是浪费。 这就是我为什么要设置自己设置本地端口的原因:场景将改为连接(1111,2222)和(2222,1111),并且因为第二个是相同的,所以不保留。 这听起来合理吗?