独步喜欢 2019-11-22 23:42 采纳率: 0%
浏览 467
已结题

linux c写了一个UDP服务器,然后通过网络助手做作为客户端,UDP无法接收到数据

#include

#include

#include

#include

#include

#include

#include

#include

#include

//#include

char* PORT="5588"; //server's port

char* SOCKET_SERVER_IP="192.168.1.105"; //

int main()

{

printf("Welcome! This is a UDP server, I can only received message from client and reply with same message\n");



struct sockaddr_in addr;

addr.sin_family = AF_INET;

addr.sin_port = htons(atoi(PORT));

addr.sin_addr.s_addr = htonl(INADDR_ANY);



int sock;

if ( (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)

{

    perror("socket");

    exit(1);

}

//port bind to server

if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)

{

    perror("bind");

    exit(1);

}

char buff[512];

struct sockaddr_in clientAddr;

memset(&clientAddr,0,sizeof(clientAddr));

size_t n;

socklen_t len = sizeof(clientAddr);

while (1)

{

    n = recvfrom(sock, buff, 511, 0, (struct sockaddr*)&clientAddr, &len);

    if (n>0)

    {

        buff[n] = 0;

        printf("%s %u says: %s\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port), buff);

        n = sendto(sock, buff, n, 0, (struct sockaddr *)&clientAddr, sizeof(clientAddr));

        if (n < 0)

        {

            perror("sendto");

            break;

        }

    }

    else

    {

        perror("recv");

        break;

    }

}

return 0;

}

然后网络助手设置如下,防火墙那些都关闭了。图片说明图片说明图片说明

很奇怪,为何服务器会收不到网络助手发的数据,求解啊。卡了2天了

  • 写回答

1条回答 默认 最新

  • J4cks0n 2019-11-23 09:47
    关注

    你的服务器是192.168.1.105啊 你远程主机填的是192.168.1.123啊

    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式