多客户模式

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <sys/types.h>
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
 
int  main( int  argc,  char  const  *argv[])
{
     int  server_sockfd, client_sockfd;
     int  server_len, client_len;
     struct  sockaddr_in server_address;
     struct  sockaddr_in client_address;
     int  result;
     fd_set readfds,testfds;
 
     // create a socket for server and name it
     server_sockfd=socket(AF_INET,SOCK_STREAM,0);
 
     server_address.sin_family=AF_INET;
     server_address.sin_addr.s_addr=htonl(INADDR_ANY);
     server_address.sin_port=htons(9734);
     server_len= sizeof (server_address);
 
     //bind the socket and address
     bind(server_sockfd,( struct  sockaddr*)&server_address,server_len);
 
     listen(server_sockfd,5);
 
     FD_ZERO(&readfds);
     FD_SET(server_sockfd,&readfds);
 
     while (1){
         char  ch;
         int  fd;
         int  nread;
 
         testfds=readfds;
         printf ( "server waiting...\n" );
 
         result=select(FD_SETSIZE,&testfds,(fd_set*)NULL,(fd_set*)NULL,( struct  timeval*)0);
 
         if (result<1){
             perror ( "server5..." );
             exit (1);
         }
 
         for (fd=0;fd<FD_SETSIZE;fd++){
             if (FD_ISSET(fd,&testfds)){
                 if (fd==server_sockfd){
                     client_len= sizeof (client_address);
                     client_sockfd=accept(server_sockfd,( struct  sockaddr*)&client_address,&client_len);
                     FD_SET(client_sockfd,&readfds);
                     printf ( "adding client on fd %d\n" , client_sockfd );
                 } else {
                     ioctl(fd,FIONREAD,&nread);
 
                     if (nread==0){
                         close(fd);
                         FD_CLR(fd,&readfds);
                         printf ( "removing client on fd %d\n" ,fd );
                     } else {
                         read(fd,&ch,1);
                         sleep(3);
                         printf ( "server client on fd %d\n" ,fd );
                         ch++;
                         write(fd,&ch,1);
                     }
                 }
             }
         }
     }
 
     return  0;
}
目录
相关文章
|
1月前
|
数据管理 BI
自动上架,助力高效资产管理和运营
Dataphin推出的资产自动上架功能,旨在解决资产运营人员手动维护和上架大量资产的繁琐工作。支持不同类型的规则配置,并提供灵活的执行配置和排序功能,从而高效管理不同特性的资产,也能有效避免冲突,助力提升工作效率,为资产运营提供了更多可能性。
83 10
|
3月前
|
SQL 运维 安全
【产品升级】Dataphin V4.2重大升级:上线敏捷版,打通数据资产管理和消费,开启数据价值放大新篇章
Dataphin 是阿里巴巴旗下的一个智能数据建设与治理平台,旨在帮助企业构建高效、可靠、安全的数据资产。在V4.2版本中,Dataphin敏捷版上线助力企业打造轻量版数据中台,打通数据资产管理和消费,陪伴企业迈入数据高价值应用新阶段。
1785 2
【产品升级】Dataphin V4.2重大升级:上线敏捷版,打通数据资产管理和消费,开启数据价值放大新篇章
|
5月前
|
大数据
网络交易平台的运营模式是什么?
【5月更文挑战第14天】网络交易平台的运营模式是什么?
114 0
|
5月前
|
存储 数据库
工单系统的作用与优势!为什么企业需要它?
**工单系统是管理任务和请求的软件,如ZohoDesk,能提升生产力、提供透明度、增强客户满意度、优化资源分配和促进协作。ZohoDesk工单系统特点包括直观界面、高度可定制、多渠道支持、强大集成能力和报告功能,适合不同规模的组织。**
117 1
|
5月前
|
数据中心
|
供应链 搜索推荐 大数据
外贸业务客户开发策略
搜索引擎,这个想必外贸人一点都不陌生,都会用到,不管是谷歌,还是雅虎,还是其他的搜索引擎,这里要强调一点的是,有国家还有本土的搜索引擎的,比如中国有百度,搜狐之类的,用本土搜索引擎,开发效率更高。 2、社交媒体,比如领英,facebook等
141 0
|
弹性计算 负载均衡 网络虚拟化
面向传统行业客户的共享带宽方案
告诉你为什么共享流量包相对于共享带宽更适合传统行业客户。
338 0
面向传统行业客户的共享带宽方案
|
人工智能 大数据 云计算
从传统的找客户到现在的客户找上门
从传统的找客户到现在的客户找上门
853 0
从传统的找客户到现在的客户找上门
|
人工智能 Oracle 关系型数据库