小编Tig*_*per的帖子

socket java无法接收太多数据

这是我的socket实现:

s = new Socket(this.host,this.port);
s.setReceiveBufferSize(2048*2048);
s.setSendBufferSize(2048*2048);
Run Code Online (Sandbox Code Playgroud)

当我收到太多数据时,我的数据被裁剪如下:

Recieving Message: {"cmd":"209","args":{"type":1,"messages":[{...},{...},{...},{..{...},{?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????...
Run Code Online (Sandbox Code Playgroud)

[编辑]我创建了一个名为InputReader的类,它实现了一个Runnable,这个类里面有一个run方法和一个while条件:

private class InputReader implements Runnable {
    private DarkStarSocketClient main;
    private InputStream in;
    private boolean disconnected = false;

    public InputReader(DarkStarSocketClient main, InputStream in) {
        this.main = main;
        this.in = in;
    }

    public void run() {
        while (!disconnected) {
            try {

                byte hi = (byte) in.read();
                if (hi == -1) {
                    main.disconnect();
                    MessageBuffer dummy = new MessageBuffer(new byte[0]);
                    postRequest(dummy);
                    break;
                }
                byte lo = (byte) in.read();
                int len = ((hi …
Run Code Online (Sandbox Code Playgroud)

java sockets networking

2
推荐指数
1
解决办法
84
查看次数

标签 统计

java ×1

networking ×1

sockets ×1