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

本文通过示例代码展示了如何使用C++进行非阻塞TCP服务器和客户端的编程。服务器在特定端口仅允许一个实例,而客户端可以启动多个进程进行连接。服务器会非阻塞地轮询检查每个连接,一旦接收到数据,即打印出来。
最低0.47元/天 解锁文章
1585

被折叠的 条评论
为什么被折叠?



