JSON反序列化在本地工作,但不能从远程服务器工作

时间:2016-07-28 22:25:49

标签: c# json.net client-server

这里有个奇怪的问题。

我有两个申请。

服务器应用 Unity3D应用程序,它捕获游戏中的帧,转换为JSON并发送到连接的客户端。

客户端应用 连接到服务器并通过TCP接收数据。接收的数据将转换为字符串,然后从JSON反序列化为对象。

服务器发送:

public void Send(byte[] dataToSend)
{
    var message = new MessageData();
    message.Bytes = dataToSend;
    var json = JsonConvert.SerializeObject(message);

    var bytesToSend = Encoding.ASCII.GetBytes(json);
    clientSocket.Send(bytesToSend, 0, bytesToSend.Length, SocketFlags.None);

}

客户接收:

    public void StartReceiving(TcpClient client)
    {
        if (!client.Connected) return;

        try
        {
            var stream = client.GetStream();

            if (!stream.DataAvailable) return;

            var buffer = new byte[500000];
            var bytes = stream.Read(buffer, 0, buffer.Length);

            var json = Encoding.ASCII.GetString(buffer);

            var message = JsonConvert.DeserializeObject<MessageData>(json);

            //raise image received event
            ImageReceivedEventArgs args = new ImageReceivedEventArgs();
            args.Bytes = message.Bytes;
            args.Time = DateTime.Now;
            OnImageReceived(args);
        }
        catch (Exception exception)
        {

        }
    }

MessageData 只是一个具有字节数组属性的类,名为&#34; Bytes&#34;。

现在,出于某种原因,这一切在本地都非常好用,JSON完美出现。但是,将我的服务器应用程序放到服务器上,我的JSON搞砸了。

以下是我收到的错误:

  

解析值时遇到意外的字符:问:路径&#39;&#39;,第0行,第0位。

如果有任何提示,我的服务器应用程序正在Amazon EC2实例上运行。

什么了?

0 个答案:

没有答案