0

私は PhoneGap でアプリケーションを作成しており、HTML5 Websockets を使用して別のデバイスに情報を送信しています (読み: アプリを持っている別のユーザーにデータを送信しています)。ユーザーはIDとユーザー名で登録されます。
このために、TCP/ソケット接続を確立する必要があることを読みました。かつて学校で 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();
     }

最後のデシリアライズ行の書き込み: 入力ストリームは有効なバイナリ形式ではありません。最初の内容 (バイト単位) は次のとおりです。

ストリームを逆シリアル化する他の方法はありますか? または、完全に間違った方法を使用していますか?

編集:おしゃべりでクライアント間でデータを送信するために使用したC#の方法で動作

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

0 に答える 0