2、搭建一个后台服务器--客户端
2016-10-26 10:26
357 查看
上篇规定的协议请求部分:
request:
username/password, 约定username与password 各占32个字节(联同末位0)
可以将客户端的逻辑设计成:
1.将username,password 封装进buffer
2.连接服务端
3.发送buffer
4.接收二进制的系统当前时间
5.显示时间
代码如下:
服务端地址设置部分:
创建连接:
连接服务端代码:
设置buffer填充username/password代码:
接着是发送:
接收部分代码:
将接收到的二进制数据转成时间
显示时间:
关闭连接:
实际开发中,为了追求并发效率和提升搞压效果,客户端需要有一个循环,另外可以多进程同时操作。
实际测试中,我发现客户端的单进程并发量大概在1万左右,因此多开几个程序,已经可以满足需求了。
详细代码下载地址:
客户端代码
转载自http://blog.csdn.net/xiaofei_hah0000/article/details/8742707
request:
username/password, 约定username与password 各占32个字节(联同末位0)
可以将客户端的逻辑设计成:
1.将username,password 封装进buffer
2.连接服务端
3.发送buffer
4.接收二进制的系统当前时间
5.显示时间
代码如下:
服务端地址设置部分:
addr_server.sin_family = AF_INET; addr_server.sin_port = htons( port ); addr_server.sin_addr.s_addr = inet_addr( ip );
创建连接:
sock_client = socket( AF_INET, SOCK_STREAM, 0 );
连接服务端代码:
flag = connect( sock_client, ( struct sockaddr* ) &addr_server, sizeof( addr_server ) );
设置buffer填充username/password代码:
sprintf(buffer, "%s", "username"); sprintf(buffer + 32, "%s", "password" ); buffer[31]=buffer[63] = 0;
接着是发送:
flag = send( sock_client, buffer, 64, 0 ); if( flag == 64 ) { printf( "send ok\n"); }
接收部分代码:
flag = recv( sock_client, buffer, 64, 0 ); if( flag != sizeof( time_t ) ) { printf( "recv does not follow protocal\n"); close( sock_client ); continue; }
将接收到的二进制数据转成时间
memcpy( curtime, buffer, sizeof( time_t ) ); struct tm *ptm = localtime( curtime );
显示时间:
printf( "system time:%04d-%02d-%02d-%02d:%02d:%02d\n", ptm->tm_year + 1900, ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec );
关闭连接:
printf( "ok,now we close connection\n" ); close( sock_client );
实际开发中,为了追求并发效率和提升搞压效果,客户端需要有一个循环,另外可以多进程同时操作。
实际测试中,我发现客户端的单进程并发量大概在1万左右,因此多开几个程序,已经可以满足需求了。
详细代码下载地址:
客户端代码
转载自http://blog.csdn.net/xiaofei_hah0000/article/details/8742707
相关文章推荐
- 搭建一个后台服务器--客户端
- 搭建一个后台服务器--服务端(异步,大并发)
- 搭建一个后台服务器
- 搭建一个后台服务器--服务端代码(异步,大并发)
- 搭建一个后台服务器--服务端(阻塞)
- centos6.5下如何搭建一个ftp服务器和使用客户端
- 1、搭建一个后台服务器--引子
- 4、搭建一个后台服务器--服务端代码(异步,大并发)
- 搭建一个后台服务器--服务端代码(异步,大并发)
- linux环境下搭建一个基于tcp的客户端和服务器
- 搭建一个后台服务器--服务端(异步,大并发)
- 3、搭建一个后台服务器--服务端(阻塞)
- 搭建一个后台服务器--引子
- 搭建一个后台服务器--服务端(异步,大并发)
- Socket编程服务器和客户端(多个客户端可以同时连接一个服务器的同一端口)
- 搭建CVS服务器和CVS客户端
- 搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页
- 一个简单的IOCP(IO完成端口)服务器/客户端类(2/2)
- 一个简单的IOCP(IO完成端口)服务器/客户端类(1/2)