네트워크 프로그래밍 프로젝트에서 클라이언트 서버를 작성하고 있습니다 Rock Paper Scissors code. 나는이 코드를 코드에 추가하기 전에 코드를 끝내고 테스트 중에 잘 작동했다.세그먼트 화 된 클라이언트 서버 코드 오류 오류
findWinner(gameType,pcChoice);
코드에 줄을 추가하면 코드가 서버 측에서 세그먼트 오류에 대한 오류를 표시하기 시작했습니다. 이 곳이 제가이 라인을 추가 한 곳입니다.
while(1)
{
int gameType;
printf("Paper, Scissors, Rock game start.\n");
rc = read(client_sockfd, &gameType, 1);
srand(time(NULL));
pcChoice = (rand() % 3)+1;
findWinner(gameType,pcChoice);
gameType = pcChoice;
write(client_sockfd, &gameType, 1);
}
나는 C의 애국가이며 무엇을 해야할지 알지 못합니다. 문제가 될 수
void findWinner(int player,int pc)
{
const char *items[3]={"Paper","Scissors","Rock"};
printf("Client: %s\n",items[player-1]);
printf ("Computer: %s\n",items[pc-1]);
switch (player)
{
case 1:
switch (pc)
{
case 1:
printf("it is a DRAW\n");
break;
case 2:
printf("Computer Wins\n");
break;
case 3:
printf("Computer Loses\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
case 2:
switch (pc)
{
case 1:
printf("Computer Loses\n");
break;
case 2:
printf("it is a DRAW\n");
break;
case 3:
printf("Computer Wins\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
case 3:
switch (pc)
{
case 1:
printf("Computer Wins\n");
break;
case 2:
printf("Computer Loses\n");
break;
case 3:
printf("it is a draw\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
default:
printf("ERROR\n");
exit(0);
}
}
이제 디버거를 사용하는 방법을 배우는 것이 좋습니다. – melpomene
Pls는 findWinner 함수 코드와 pcChoice의 유형 및 사용 정보를 제공합니다. – Jay
나는 질문을 편집했다 – femchi