我的udp客户端套接字中无法访问目标端口

时间:2015-06-23 05:59:16

标签: c sockets

int  udp_sock() {
    //Create socket
    sock = socket(AF_INET , SOCK_DGRAM , 0);

    if (sock == -1) {
        printf("Could not create socket\n");
    }

    puts("Socket created.......\n");

    server1.sin_addr.s_addr = inet_addr("172.210.110.10");
    server1.sin_family = AF_INET;
    server1.sin_port = htons(PORT);

    //Connect to remote server
    con= connect(sock , (struct sockaddr *)&server1 , sizeof(server1));

    if(con<0) {
        perror("connect failed. Error\n");
        return con;
    }

    puts("Connected\n");

    return 0;
}

数据包到达服务器,但错误“目标端口无法访问”出现在Wireshark中。

  1. 如何在我的客户端上分配UDP端口以接收特定端口上的数据?
  2. 如何分配两个不同的端口 - 1024和1025来接收数据?
  3. 任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

另一端需要服务器等待。一种简单的测试方法是使用netcat。

var tableCells = document.getElementsByTagName('td'),
cellCount = tableCells.length,i;
for (i = 0; i < cellCount; i += 1) {
     var sub1=tableCells[i].id;
     var sub2=sub1.substring(0,1);
      if(sub==sub2)  {
                  document.getElementById(id).style.visibility="visible";  }
      else   {
                  document.getElementById(id).style.visibility="hidden";  }
      }

或者设置一个专为udp测试而设计的实用程序,例如echo服务器。这通常内置在inetd或xinetd服务器

如果要拦截传入的udp数据包,则需要使用bind()select()/ poll()/ epoll()和recvfrom()