您当前的位置: 首页 >  服务器

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

c++下基于windows socket的多线程服务器(基于TCP协议)

鱼儿-1226 发布时间:2020-08-24 14:32:37 ,浏览量:0

 之前用c++实现过基于windows socket的单线程TCP服务器(http://www.cnblogs.com/jzincnblogs/p/5170230.html),今天实现了一个多线程的版本,可以接受多个客户端的请求,原理与之前的单线程版本相似,只是在多线程版本中主线程用于监测客户端请求,每当有新客户端请求连接,主线程便新开一个线程用户处理客户端的请求。代码如下:

  头文件:

复制代码

 1 #ifndef SERVER_H
 2 #define SERVER_H
 3 
 4 #include 
 5 #include 
 6 
 7 #pragma comment (lib, "ws2_32.lib")
 8 
 9 #define IP_BUF_SIZE 129
10 
11 class Server
12 {
13 public:
14     Server();
15     ~Server();
16     Server(const Server &) = delete;
17     Server & operator=(const Server &) = delete;
18     void WaitForClient();
19 private:
20     WORD winsock_ver;
21     WSADATA wsa_data;
22     SOCKET sock_svr;
23     SOCKET sock_clt;
24     HANDLE h_thread;
25     SOCKADDR_IN addr_svr;
26     SOCKADDR_IN addr_clt;
27     int ret_val;
28     int addr_len;
29     char buf_ip[IP_BUF_SIZE];
30 };
31 
32 #endif

复制代码

  函数定义:

复制代码

  1 #include "server.h"
  2 #include 
  3 #include 
  4 
  5 using std::cerr;
  6 using std::cout;
  7 using std::endl;
  8 
  9 #define SERVER_PORT 5000
 10 #define MSG_BUF_SIZE 1024
 11 
 12 Server::Server()
 13 {
 14     cout             
关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.1808s