클라이언트에서 서버로 번호를 보내려고합니다. 내 코드는 다음과 같습니다C - read()를 사용하여 클라이언트에서 서버로 정수 읽기
서버
n= read(client_sockfd, &choice_client, 1); //read client's choice
printf("%d\n", choice_client);
클라이언트
my_choice=1; //basically everything exept 0
n = write(sockfd , &my_choice, 1); //send choice to server
Outuput는
0 (항상)
수동으로 소켓 입출력을 버퍼링해야합니다. 따라서 큰 (예 : 16 킬로바이트) 청크에서'read' (또는'recv')와'write' (또는'send')를 호출하고 코드가 청크를 의미있는 메시지로 분리하도록하십시오. 한쪽면에서'send '가 다른면에서 하나의'recv'에 해당한다고 기대하지 마십시오. TCP/IP 소켓은 단지 바이트 스트림 (* 메시지가없는)이다. –
또한, 한번에 * 싱글 바이트를'read' 또는'recv '할 수 없다면 피하라. 매우 비효율적입니다. 내가 말했듯이, 당신은 완충해야합니다. –
어떤 운영 체제에 있습니까? –