服务器在一台机器上同一个端口只能开启一个。
客户端可以开启多个程序进程以连接服务器的端口。
服务器会对连接的客户端非阻塞轮询遍历查看是否有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 结构