我试着用UDP发送文本,通过分别发送每个字符,但似乎有问题。
这是客户:

while(strcmp(sir,"0")!=0)
{
     printf("Text number %d:", i);
     i++;
     scanf("%s",sir);
     printf("\n");
     sirLen=strlen(sir);
     for(j=0;j<sirLen;j++)
     {     c=sir[j];
          printf("%c",c);
          sendto(sock, &c, sizeof(char), 0, (struct sockaddr *)&ServAddr, sizeof(ServAddr));
     }
}

raspunsLen=recvfrom(sock, raspuns, SIRMAX, 0,(struct sockaddr *) &fromAddr, &fromSize);
raspuns[raspunsLen] = '\0';
printf("%s",raspuns);

这就是服务器:
for (;;)
{
    cliAddrLen = sizeof(ClntAddr);
    while(sir != '0')
    {
      recvfrom(sock, &sir, sizeof(char), 0,(struct sockaddr *) &ClntAddr, &cliAddrLen);
      raspuns[i]=sir;
      printf("%c",sir);
    }
    raspunsMsgSize=strlen(raspuns);
    sendto(sock, raspuns, raspunsMsgSize, 0, (struct sockaddr *) &ClntAddr,             sizeof(ClntAddr));
}

当我发送整段文本时,它会工作,但这样服务器似乎什么也没有收到希望有人能帮忙。
谢谢您。

最佳答案

我怀疑:

while(sir != '0')

应该是:
while(sir != 0)

或者可能:
while( * sir != 0 )

但实际上,你没有发布足够的代码来确定。

08-28 12:21