C#转换为从客户端向服务器发送消息

时间:2016-02-16 13:01:19

标签: c# unity3d server client communication

我目前正在尝试实现服务器和客户端之间的通信。 我已经能够连接和断开与服务器的连接。 不,我尝试发送实际数据。这是我的问题...... 我创建了一个方法(在unity-c#中)来发送消息:

    public void SendServerMessage(message mes)
{
    if (connectedToServer)
    {
        try
        {
            // convert message into a byte array, wrap the message with framing
            Debug.Log("1");
            byte[] messageObject = ConversionTools.convertObjectToBytes(mes);
            Debug.Log("2");
            byte[] readyMessage = ConversionTools.wrapMessage(messageObject);
            Debug.Log("3");

            // send completed message
            cSock.Send(readyMessage);
        }
        catch
        {
            Debug.Log("There was an error sending server message " + mes.messageText);
        }
    }
}

- >我得到Debug.Log(" 1");输出,但然后我从catch块获取错误消息。 这是功能:

        public static byte[] convertObjectToBytes(object o)
    {
        //used when sending our custom classes
        MemoryStream memStream = new MemoryStream();
        BinaryFormatter binForm = new BinaryFormatter();
        binForm.Serialize(memStream, o);
        return memStream.ToArray();
    }

消息是我创建的类,如下所示:

    [Serializable]
public class message
{
    //used to communicate between Server and Client
    public string messageText;
    private List<scObject> scObjects = new List<scObject>();
    public int messageID;
    [...]

可以通过添加字符串等来操作对象。

我真的希望你们能帮我解决这个问题:( 我实际上是在教程的帮助下创建的,并且在2012年的教程中代码可以正常工作。我用Google搜索并尝试了很多,但我不知道如何解决它。

0 个答案:

没有答案