如何通过Java服务器套接字向PHP套接字发送多个对象


how can i send multiple objects through java server socket to php socket?

我试图从java服务器通过php套接字发送多个对象。虽然当我尝试发送2个或更多的json对象到php客户端,网站只是拒绝加载。但是当我只发送一个json对象时,它似乎工作得很好。

这是我的java服务器的代码:

package org.articron.server;
import org.json.simple.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
/**
 * @author Articron | Arno
 *         on 8-8-2015.
 */
public class TCPConnection implements Runnable {
    private Socket client;
    private PrintWriter writer;
    private BufferedReader reader;
    private JSONObject tosend;
    private JSONObject tosend2;
    public TCPConnection(Socket client, PrintWriter writer, BufferedReader reader) {
        this.client = client;
        this.writer = writer;
        this.reader = reader;
        tosend = new JSONObject();
        tosend2 = new JSONObject();
        tosend.put("scriptid","2");
        tosend.put("name","mathias@cochet.lol");
        tosend2.put("scriptid","1");
        tosend2.put("botname","arno.gerver@gmail.com");
    }
    @Override
    public void run() {
        try {
            tosend.writeJSONString(writer);
            tosend2.writeJSONString(writer);
            writer.write("END");
            writer.flush();
            writer.close();
            reader.close();
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PHP是这样的

function dataTrans()
{
    $recieved = array();
    /* Get the port for the WWW service. */
    $service_port = 5678;
    /* Get the IP address for the target host. */
    $address = gethostbyname('104.251.212.75');
    /* Create a TCP/IP socket. */
    $socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
    if ($socket === false) {
        echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "'n";
    } else {
       // echo "OK.'n";
    }

    $result = socket_connect($socket, $address, $service_port);
    if ($result === false) {
        echo "socket_connect() failed.'nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "'n";
    } else {
       // echo "OK.'n";
    }
        do{
        $obj = socket_read($socket, 1024);
            if($obj == 'END'){
                break;
            }
        array_push($recieved, json_decode($obj));
            }while(true);
    socket_close($socket);
    return $recieved;
}

我还没有尝试过,但出于本能,我建议发送一个JSONArray与2(或更多)JSONObjects在里面,在PHP方面的东西,假设你收到一个数组,而不是许多对象。