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然后一切正常。有什么想法吗?
答案 0 :(得分:0)
你可以通过放置
来控制你的c代码从JS方面到底是什么printf ("chr arrived: %i %c \n", payload[i], payload[i]);
循环中的,它打印当前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);