我在服务器和客户端之间编写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