我在服務器和客戶端之間編寫2個整數,它在兩者之間混亂。客戶端寫道:讀寫系統調用返回亂碼(C)
char playerMove[3];
char oppMove[3];
write(sock, playerMove, 3);
printf("Waiting on Opponent's move.\n");
read(sock, oppMove, 3);
printf("this was Opponent's move: %s\n", oppMove);
,而相關的服務器代碼
char playerMove[3];
read(socket1, playerMove, 3);
printf("First move is: %s", playerMove);
write(socket2, playerMove, 3);
終端顯示,客戶說
Waiting on Opponent's move.
this was Opponent's move: �D�K
,但在服務器端,我可以清楚地看到它去通過正確
First move is: 3 1
有人可以幫我嗎?我是新來的C.我需要做些特別的事情來給我的客戶寫「3 1」嗎?
你需要從'write'檢查返回值和'read'以確保他們實際上工作,並且'read'實際上有3個字節。 – user3386109 2015-04-02 07:30:56
我已經設置了一切條件,如if(寫(socket2,playerMove,4)<0){perror(「寫入失敗」); \t}沒有出現在終端 – REALLYANGRYSTUDENT 2015-04-02 07:36:25