标签: winsock2

如何在MSVC++ 2012中从城域切换到桌面

我一直在使用msvc ++ 2010中的boost.最近,我尝试了新版本的msvc ++(2012终极版),从那以后我无法构建我的应用程序,因为它不包括像winsock2这样的头文件.一些网站说新窗口的应用程序模式,地铁样式,不能使用这些库和标题,然后我已经尝试从这种地铁样式切换到旧桌面.有人能帮我吗?

c++ winsock2 microsoft-metro visual-studio-2012

0
推荐指数
1
解决办法
264
查看次数

C ++ Winsock发送文件

我可以发送文件的简单服务器和客户端,并且我需要你们看看此源是否已完成。因为我认为它不会下载完整文件。

也许对此来源有限制?因为我上传/下载了200K,还有更多..

服务器:

#include <WinSock2.h>
#include <Windows.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

SOCKET Socket, Sub;
WSADATA Winsock;
sockaddr_in Addr;
int Addrlen = sizeof(sockaddr_in);
char Buffer[256];
char *Str;
sockaddr_in IncomingAddress;
int AddressLen = sizeof(IncomingAddress);

int main()
{
    WSAStartup(MAKEWORD(2, 2), &Winsock);    // Start Winsock

    if(LOBYTE(Winsock.wVersion) != 2 || HIBYTE(Winsock.wVersion) != 2)    // Check version
    {
        WSACleanup();
        return 0;
    }

     Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    ZeroMemory(&Addr, sizeof(Addr));
    Addr.sin_family = AF_INET;
    Addr.sin_port = htons(6091);  
    bind(Socket, (sockaddr*)&Addr, sizeof(Addr));

    if(listen(Socket, 1) == SOCKET_ERROR)
    {
        printf("listening error\n"); …
Run Code Online (Sandbox Code Playgroud)

c++ sockets winapi winsock winsock2

-1
推荐指数
1
解决办法
1万
查看次数

在Windows C中获取与REAL硬件以太网控制器关联的IP地址

我试图寻找它,但我找不到任何有用的灵魂.

如今,由于Hamachi,Virtual box等,Windows可以检测到安装了多个由物理硬件控制的电子网络.

现在我需要获得机器的真正IP地址.当我尝试使用gethostbyname时,它返回了我的Hamachi客户端的IP地址.

现在我需要找到100%可靠的方法来接收真正的ip地址.任何链接/提示/文章/方法真的很感激.

编辑:

到目前为止得到了这个 - Remy Lebau吸收的方法,但它不能按我想要的方式工作 - 总是返回127.0.0.1:

    int main()
{
    WSADATA WSA_info;
    if (WSAStartup(MAKEWORD(2,2),&WSA_info)!=0)
    {
        std::cout << "Error with WSA.\n";
        std::cin.get();
        return -1;
    }
    SOCKADDR_IN adress;
    adress.sin_family = AF_INET;
    adress.sin_port = htons(80);
    adress.sin_addr.S_un.S_addr = inet_addr("213.241.88.40"); //its google's IP adress - to chech it I used ping google.com in cmd (maybe there is somethign wrong with this)
    SOCKET sock;
    if ((sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))== INVALID_SOCKET){
        std::cout << "Error while creating socket." << std::endl;
        closesocket(sock);
        WSACleanup();
        std::cin.get();
        return …
Run Code Online (Sandbox Code Playgroud)

c windows ip-address winsock2

-1
推荐指数
1
解决办法
627
查看次数

错误C2678:二进制'==':找不到带左手操作数的运算符

我无法弄清楚为什么我得到这个错误但是同一个类在VS15下完美运行现在我正在使用VS12,它是一个简单的Winsock2实现,

int Net::createServer(int port, int protocol) 
{
    int status;

    // ----- Initialize network stuff -----
    status = initialize(port, protocol);
    if (status != NET_OK)
        return status;

    localAddr.sin_addr.s_addr = htonl(INADDR_ANY);    // listen on all addresses

    // bind socket
    if (bind(sock, (SOCKADDR *)&localAddr, sizeof(localAddr)) == SOCKET_ERROR)
    {
        status = WSAGetLastError();          // get detailed error
        return ((status << 16) + NET_BIND_FAILED);
    }
    bound = true;
    mode = SERVER;

    return NET_OK;
}
Run Code Online (Sandbox Code Playgroud)

问题来自这里

if (bind(sock, (SOCKADDR *)&localAddr, sizeof(localAddr)) == SOCKET_ERROR)
Run Code Online (Sandbox Code Playgroud)

控制台日志:

error C2678: binary '==' …
Run Code Online (Sandbox Code Playgroud)

c++ operators winsock2

-1
推荐指数
1
解决办法
1269
查看次数

是否可以将tcp服务器连接到winsock中的udp客户端

我在winsock2中做了一个简单的服务器客户端控制台聊天框.然后我的同事问我是否可以进行单服务器多客户端连接,其中SERVER将在TCP中,而CLIENTS将在UDP中.此外,客户端不知道服务器的IP但知道端口号,即客户端必须搜索服务器然后连接它.所有这些都通过LAN.

任何人都可以告诉我如何做这样的程序,或者如果可能的话可以发布代码供参考.

c udp tcp winsock winsock2

-2
推荐指数
1
解决办法
887
查看次数