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

這是一些我無法修改的服務器代碼的一部分。我正在寫客戶端。我試過以下使用Javascript/C發送/接收換行符

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

沒有工作。它不停在換行符。如果我將換行符設置爲'|'然後放入'|'在websocket.send然後一切正常。有任何想法嗎?

回答

0

你可以在你的C代碼究竟從事物的JS側到達控制放置

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),所以我會sugest你嘗試以下指定你在JS中的換行符:

​​