UDP クライアントから UDP サーバーに文字列を送信しています。サーバーの仕事は、この文字列がテキスト ファイル archive.txt 内のどこかに存在するかどうかを確認することです。
私が得ている問題は、2 番目の文字列が最初の文字列にある場合でも、strstr が常に null を返すことです。
char msg[1000];
FILE *archive;
archive = fopen("archive.txt", "r");
char line[53];
char *testing;
. . .
len = sizeof(cliaddr);
n= recvfrom(sockfd,msg,1000,0,(struct sockaddr *)&cliaddr,&len);
sendto(sockfd,msg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
msg[n]=0;
while(fgets(line, 53, archive) !=NULL)
{
testing = strstr(line, msg);
if(testing!=NULL)
{printf("%s\n","Success");}
else
{ printf("%s\n", "fail");
printf("%s\n", line);
printf("%s\n", msg);
}
}
プログラムが出力に失敗する場合があります。行と、msg が行の部分文字列である msg です。