[英]Sending masked data from web socket server to web socket client
在開發回Web服務器客戶端之前,我開發了以下C代碼來屏蔽數據,這是使用RFC 6455協議在Firefox瀏覽器上運行的java腳本。 但是我遇到了問題,因為我無法在客戶端看到任何內容。 有人說,從服務器發送到客戶端時不必屏蔽數據。 真的嗎 ? 我無法看到我的情況。 如果我的問題在某處不明確,請告訴我。 謝謝你的幫助。
char frame[131],message[360];
strcpy(message,"Server here !");
frame[0] = '\x81';
frame[1] = 128 + strlen(message);
frame[2] = '\x00';
frame[3] = '\x00';
frame[4] = '\x00';
frame[5] = '\x00';
snprintf(frame+6, 124, "%s", message);
printf("%s", frame);
n = write(newsockfd, frame, strlen(frame));
不要使用strlen
函數來獲取除C風格字符串之外的任何內容的長度。 您的框架不是C風格的字符串。 幀的長度是6 + strlen(message)
,而不是strlen(frame)
。
這也是printf("%s", frame);
沒用。 %s
格式說明符用於C樣式字符串,而您的幀不是。
這假設您的消息是C風格的字符串。 如果沒有,你有其他錯誤,因為你使用strlen
來計算frame[1]
的初始化程序中的長度。
由於嵌入的空值,strlen()不給出幀的長度。 將消息長度添加到幀前綴長度。 但掩蔽在哪里?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.