配置方面:一般情况下.日访问IP不超过2万的情况下.租用一个至强XEON四核以上处理器.4G以上内存.500G以上硬盘的就足够用了.
带宽方面:需要结合你的网站情况来判断.如果只是浏览为主的网站.用默认的共享带宽即可.若是有下载.建议用独享带宽.带宽越大越有利于下载.
根据你所选择机房线路的不同.这样一台服务器按年租用的话一般是四五千到近万元不等.如果你的网站是面向全国各地用户的话.推荐你选择中原地区BGP机房.中原占据先天的地理位置优势.而且机房是多线接入 .在全国各地访问的速度与稳定性非常好.
可以将客户端的逻辑设计成:1.将username,password 封装进buffer
2.连接服务端
3.发送buffer
4.接收二进制的系统当前时间
5.显示时间
代码如下:服务端地址设置部分:
[cpp] view plain copy print?
addr_server.sin_family = AF_INETaddr_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 )
实际开发中,为了追求并发效率和提升搞压效果,客户端需要有一个循环,另外可以多进程同时操作。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)