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

您可以在您的 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 回答