Bootstrap

c++非阻塞客户端/服务器TCP连接 socket编程代码示例

服务器在一台机器上同一个端口只能开启一个。 

客户端可以开启多个程序进程以连接服务器的端口。

服务器会对连接的客户端非阻塞轮询遍历查看是否有recv到数据。如果有则打印出来。

 

话不多说 直接上代码

服务器

#ifndef __TCP_SERVER__
#define __TCP_SERVER__
//#include "tcpServer.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <vector>


//网络库
#include <WinSock2.h>
//多线程
//#include <thread>

//加载lib
#pragma comment(lib, "ws2_32.lib")

//端口定义
#define IPORT 36888
//实现bzero
#define bzero(a,b) memset(a, 0, b)
//监听队列最大数
#define BACK_LOG 10

using namespace std;

void main()
{
    // 返回值
    int ret;
    // WSA -> winsockapi
    WSADATA wsad;
    DWORD err;

    ret = WSAStartup(MAKEWORD(2, 2), &wsad);
    if (ret != 0)
    {
        perror("WSA startup failed");
        system("pause");
        exit(EXIT_FAILURE);
    }

    // 声明 socket
    SOCKET fd;
    // 声明 sockaddr_in 结构

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;