小编Ada*_*lps的帖子

如何在c ++中使用winsock接收udp数据包?

为了尝试绕着udp套接字缠绕我,我试图将这个教程页面http://www.linuxhowtos.org/C_C++/socket.htm中的代码移植到winsock(如果重要的话,在win 8上运行).[以下直接链接]

代码当前编译并运行但我从未收到过数据包,两个程序只是等待并阻塞recvfrom().我一直有同样的问题(例如,这个代码的修改版本/sf/answers/47567061/包含一个recvfrom()调用.并且这个代码C++问题与数据报(UDP)winsocket到sendto和recvfrom在同一个套接字上通过环回适配器进行建议的更改).我想我正在犯一些简单而根本的错误; 但是我无法独立找到它.希望有更多经验的人可以为我解决这个问题.谢谢.

附加说明:
我正在运行服务器exe,然后在同一台计算机上运行客户端exe.它连接到互联网.我也尝试过使用解析为我的IP地址的域名.我也试过禁用防火墙,虽然我已经允许两个程序完全访问.

直接链接到原始客户端和服务器代码:
http://www.linuxhowtos.org/data/6/client_udp.c
http://www.linuxhowtos.org/data/6/server_udp.c

我目前的尝试:

都链接到libws2_32.a

客户代码:

#include <stdio.h>
#include <winsock2.h>
#include <string.h>

void error(const char *);

int main()
{
    WSAData data;
    WSAStartup( MAKEWORD( 2, 2 ), &data );

    int sock, n;
    int length;
    struct sockaddr_in server, from;
    struct hostent *hp;
    char buffer[256];
    unsigned short serverPort = 27072;
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if (sock < 0) error("socket");
    server.sin_family = AF_INET;
    hp = gethostbyname("localhost");//have also tried my …
Run Code Online (Sandbox Code Playgroud)

c++ sockets udp winsock

10
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×1

sockets ×1

udp ×1

winsock ×1