zoukankan      html  css  js  c++  java
  • 一个简单的Socket网络编程程序

    转载自 https://www.bilibili.com/video/BV1ms41137De?spm_id_from=pageDriver

    感谢up主的分享

    //服务端
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <WinSock2.h>//Windows Socket编程头文件
    #include <iostream>
    #include <WS2tcpip.h>
    #include <cstring>
    
    #pragma comment(lib, "ws2_32.lib")//链接ws2_32.lib库文件到此项目中
    using namespace std;
    
    //全局常量
    const int BUF_SIZE = 2048;
    
    
    
    //全局变量
    SOCKET sockSer, sockCli;
    SOCKADDR_IN addrSer, addrCli;//address
    int naddr = sizeof(SOCKADDR_IN);
    
    char sendbuf[BUF_SIZE];
    char inputbuf[BUF_SIZE];
    char recvbuf[BUF_SIZE];
    
    
    int main()
    {
        //加载socket库
        WSADATA wsadata;
        if (WSAStartup(MAKEWORD(2,2), &wsadata) != 0)
        {
            //输出出错信息
            cout << "载入socket库失败" << endl;
            system("pause");
            return 0;
        }
    
        //创建Socket
        sockSer = socket(AF_INET, SOCK_STREAM, 0);
    
        //初始化地址包
        addrSer.sin_addr.s_addr = inet_addr("192.168.0.1");//ip地址
        addrSer.sin_family = AF_INET;
        addrSer.sin_port = htons(12248);//端口号
    
        //绑定Socket和本地地址
        bind(sockSer, (SOCKADDR*)&addrSer, sizeof(SOCKADDR));
    
        while (1)
        {
            //监听连接请求
            listen(sockSer, 5);
            //接受连接请求
            sockCli = accept(sockSer, (SOCKADDR*)&addrCli, &naddr);
            if (sockCli != INVALID_SOCKET)//客户端套接口,连接成功
            {
                cout << "连接成功!" << endl;
                strcpy(sendbuf, "hello!");
                send(sockCli, sendbuf, sizeof(sendbuf), 0);
            }
        }
    
        //关闭套接字
        closesocket(sockSer);
        closesocket(sockCli);
        WSACleanup();
    
        return 0;
    }
    //客户端
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <WinSock2.h>//Windows Socket编程头文件
    #include <iostream>
    #include <WS2tcpip.h>
    #include <cstring>
    
    #pragma comment(lib, "ws2_32.lib")//链接ws2_32.lib库文件到此项目中
    using namespace std;
    
    //全局常量
    const int BUF_SIZE = 2048;
    
    
    
    //全局变量
    SOCKET sockSer, sockCli;
    SOCKADDR_IN addrSer, addrCli;//address
    int naddr = sizeof(SOCKADDR_IN);
    
    char sendbuf[BUF_SIZE];
    char inputbuf[BUF_SIZE];
    char recvbuf[BUF_SIZE];
    
    int main()
    {
        //加载socket库
        WSADATA wsadata;
        if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0)
        {
            //输出出错信息
            cout << "载入socket库失败" << endl;
            system("pause");
            return 0;
        }
    
        //创建Socket
        sockCli = socket(AF_INET, SOCK_STREAM, 0);
    
        //初始化客户端地址包
        addrCli.sin_addr.s_addr = inet_addr("129.0.0.1");//ip地址
        addrCli.sin_family = AF_INET;
        addrCli.sin_port = htons(12248);//端口号
    
        //初始化服务器地址
        addrSer.sin_addr.s_addr = inet_addr("192.168.0.1");//ip地址
        addrSer.sin_family = AF_INET;
        addrSer.sin_port = htons(12248);//端口号
    
        while (1)
        {
            if (connect(sockCli, (SOCKADDR*)&addrSer,sizeof(addrSer)) != SOCKET_ERROR)
            {
                recv(sockCli, recvbuf, sizeof(recvbuf), 0);
                cout << recvbuf << endl;
            }
        }
    
        //关闭套接字
        closesocket(sockSer);
        closesocket(sockCli);
        WSACleanup();
    
        return 0;
    }

    问题记录 https://blog.csdn.net/weixin_42731241/article/details/96143934

    Caesar卢尚宇

    2021年2月16日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)
    Luogu 1314 【NOIP2011】聪明的质检员 (二分)
    Luogu 1315 【NOIP2011】观光公交 (贪心)
    Luogu 1312 【NOIP2011】玛雅游戏 (搜索)
    Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)
    Luogu 1514 引水入城 (搜索,动态规划)
    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
    Luogu 1437 [HNOI2004]敲砖块 (动态规划)
    Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
    HDU 1176 免费馅饼 (动态规划)
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14407696.html
Copyright © 2011-2022 走看看