visual studio 2017 winsock开发入门

1. 新建项目

visual studio 2017 winsock开发入门_第1张图片
image.png

2. 右击“源文件”, 新建一个.cpp文件,如下图

visual studio 2017 winsock开发入门_第2张图片
image.png

然后弹出如下对话框


visual studio 2017 winsock开发入门_第3张图片
image.png

点击添加即可

3. 然后在.cpp文件中添加如下代码

#include 
#include 

using namespace std;

int main(int argc, char* argv[]) {
    WSADATA wsaData;
    SOCKET servSock;
    const int BUF_SIZE = 30;
    char message[BUF_SIZE];
    int strLen, clntAdrSz;
    SOCKADDR_IN servAddr, clntAddr;

    if (argc != 2)
    {
        cout << "Usage:" << argv[0] << "" << endl;
    }
    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
    {
        cout << "WSAStartup() error" << endl;
    }

    servSock = socket(PF_INET, SOCK_STREAM, 0);
    if (servSock == INVALID_SOCKET)
    {
        cout << "UDP socket creation error" << endl;
    }
    memset(&servAddr, 0, sizeof(servAddr));
    servAddr.sin_family = AF_INET;
    servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servAddr.sin_port = htons(atoi(argv[1]));

    cout << "server start..." << endl;
    while (1)
    {
        clntAdrSz = sizeof(clntAddr);
        strLen = recvfrom(servSock, message, BUF_SIZE, 0, (SOCKADDR*)&clntAddr, &clntAdrSz);
        sendto(servSock, message, strLen, 0, (SOCKADDR*)&clntAddr, sizeof(clntAddr));
    }
    closesocket(servSock);
    WSACleanup();

    system("pause");
    return 0;
}

直接运行上面代码,是编译不过的,需要添加依赖库。

4. 添加依赖库

执行前需要为项目添加名为ws2_32.lib的依赖库。

选择myserver, 鼠标右击,选择最下方的属性,


visual studio 2017 winsock开发入门_第4张图片
image.png

进入如下界面


visual studio 2017 winsock开发入门_第5张图片
image.png

点击下拉菜单,添加依赖库,如下界面
visual studio 2017 winsock开发入门_第6张图片
image.png

以上依赖项配置完成后,再编译,运行,OK了

  1. 参考
  • Visual Studio 2017网络编程配置

你可能感兴趣的:(visual studio 2017 winsock开发入门)