0
char newline = '\n'; 
for ( i = 5 ; i < payload_length && payload[i] != newline ; i++ )
{
    username[i-5] = payload[i];
    username[i-4] = '\0';
}

これは、変更できないサーバー コードの一部です。私はクライアント側を書いています。私は次のことを試しました

websocket.send("SEND "+name+"\n"+message);
websocket.send("SEND "+name+"\\n"+message);
websocket.send("SEND "+name+"\r\n"+message);

どれも機能しません。改行で止まりません。改行を「|」に設定した場合 そして、「|」を入れます websocket.send では、すべて正常に動作します。何か案は?

4

1 に答える 1

1

配置することで、JS側から正確に何が到着するかをcコードで制御できます。

printf ("chr arrived: %i %c \n", payload[i], payload[i]);

ループ内で、現在のchrとchr自体の数値を出力します。

改行chrを確認する場合:

char newline = '\n';
printf ("chr arrived: %i %c \n", newline, newline);

出力は次のようになります。

> ./test
chr arrived: 10

>

あなたの例で送信するのは文字\(92)とn(110)だと思いますので、JSで改行文字を指定するには次のことを試してみてください。

var newline = String.fromCharCode(10);
websocket.send("SEND "+name+newline+message);
于 2012-05-08T19:12:39.877 に答える