1将username,password 封装进buffer
2连接服务端
3发送buffer
4接收二进制的系统当前时间
5显示时间
代码如下:服务端地址设置部分:
[cpp] view plain copy print
addr_serversin_port = htons( port );
addr_serversin_addrs_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 );
实际开发中,为了追求并发效率和提升搞压效果,客户端需要有一个循环,另外可以多进程同时 *** 作。
客户端是指开发面向客户的程序,分很多平台,比如Windows安卓苹果,还有游戏客户端也算一类。
前端指的是通过浏览器和用户交互的那部分。
后端是在服务器上跑的,一般是管理数据,为前端客户端提供数据传输的。
服务器端就是后端。
服务端各种安全机制,比如身份验证,这一条的情况在于,有的前端做身份验证就是调用一下接口,获取到类似token字段,自己也不知道是什么意思,就乱丢乱用等。
本质上来说,前端是做不了什么安全措施的,但是,相应的拦截和安全还是要做,因为可以帮后端挡掉很多低质量攻击以及前端自身的用户体验。
客户端是默认支持json的,后端是需要处理的。这点可以引申到,前后端各自传递的数据格式问题。有些前端nullundefined空串分不清楚,到了后端就各种问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)