小编fei*_*iss的帖子

性能问题.使用java从套接字读取字节时速度太慢

这些天我在使用java socket时对Tcp性能感到困惑.实际上java代码非常简单.详情如下:

  1. 服务器打开一个端口并开始监听.
  2. 客户端请求和连接到服务器后,客户端开始写入套接字.
  3. 在服务器获得请求后,它将打开一个新线程来处理此连接.(此连接是一个长时间连接,不会超时).
  4. 服务器将继续读取,直到它到达结束分隔符,然后给客户端回复并继续继续阅读.
  5. 在客户端获得响应后,它将再次发送另一个请求.

我发现客户端一次写入整个消息(包括结束分隔符),通信速度是否令人满意,速度可以达到每分钟50000条消息.但是,如果客户端在不同的时间内将字节写入套接字,速度会快速下降,每分钟只有1400条消息,这是原始速度的1/40倍.我很困惑.任何人都可以帮我一臂之力?任何评论表示赞赏!

我模拟的服务器端如下:

public class ServerForHelp {

    final static int BUFSIZE = 10240;
    Socket socket;
    String delimiter = "" + (char) 28 + (char) 13;

    public static void main(String[] args) throws IOException {

            ServerSocket ss = new ServerSocket(9200);
            System.out.println("begin to accept...");
            while (true) {
                Socket s = ss.accept();
                Thread t = new Thread(new SocketThread1(s));
                t.start();
            }
    }

    public String readUntilDelimiter() throws Exception {
        StringBuffer stringBuf = new StringBuffer();
        InputStream stream = socket.getInputStream();
        InputStreamReader reader …
Run Code Online (Sandbox Code Playgroud)

java sockets performance serversocket

3
推荐指数
1
解决办法
6220
查看次数

标签 统计

java ×1

performance ×1

serversocket ×1

sockets ×1