0

我正在 PhoneGap 中制作应用程序,并且正在使用 HTML5 Websockets 将一些信息发送到另一台设备(阅读:向拥有该应用程序的另一个用户发送数据)。用户使用 ID 和用户名注册。
为此,我读到我必须建立一个 TCP/Socket 连接。我尝试使用我曾经在学校用 C# 制作的旧套接字聊天。我从应用程序以这种方式连接到套接字:

var ws = new WebSocket("ws://127.0.0.1:7001");
 ws.onopen = function()
 {
    // Web Socket is connected, send data using send()
    ws.send("message");
 };

而服务端看起来是这样的(当然不是全部代码,而是相关部分)

private NetworkStream stream;
    private IFormatter formatter = new BinaryFormatter();
    private TcpListener server;
    public TcpClient client;
    private string username { get; set; } 

private void StartServer()
    {

        int port = Convert.ToInt32(portUser);
        server = new TcpListener(IPAddress.Parse(IP), port);
        server.Start();


            client = server.AcceptTcpClient();
            stream = client.GetStream();
            username = formatter.Deserialize(stream).ToString();
     }

最后一个反序列化行写道:输入流不是有效的二进制格式。起始内容(以字节为单位)为:47-45-54-20-2F-20-48-54-54-50-2F-31-2E-31-0D-0A-48 ...

还有其他反序列化流的方法吗?还是我使用了完全错误的方式?

编辑:工作 C# 方式我用来在喋喋不休的客户之间发送数据

        stream = client.GetStream();
        formatter.Serialize(stream, messageobj);
        stream.Flush();
4

0 回答 0