当前位置: 首页> 教育> 就业 > 手机万能浏览器_移动商城个人中心_windows优化大师是什么_seo怎样优化网站

手机万能浏览器_移动商城个人中心_windows优化大师是什么_seo怎样优化网站

时间:2025/7/22 14:04:02来源:https://blog.csdn.net/m0_74933801/article/details/143634855 浏览次数:2次
手机万能浏览器_移动商城个人中心_windows优化大师是什么_seo怎样优化网站

1、使用搭建好的服务器和客户端,实现一个完整的注册,登录,退出功能, 服务器

//头文件#ifndef _LOGIN_H_
#define _LOGIN_H_#include <myhead.h>   //封装的头文件enum Type
{regist,  //注册login,  //登录quit    //退出
};//定义协议包结构体
struct Pack
{enum Type type;char id[20];char pswd[20];
};#endif

//服务器文件#include "login.h"int main(int argc, const char *argv[])
{if(argc !=2){printf("请输入端口号\n");return 1;};int port = atoi(argv[1]);//创建tcp套接字int server = socket(AF_INET ,SOCK_STREAM,0);//创建一个tcp用的地址信息结构体,向里面写入ip和portaddr_in_t addr ={0};addr.sin_family =AF_INET;addr.sin_port = htons(port);addr.sin_addr.s_addr = inet_addr("127.0.0.1");  //192.168.126.126//使用已经准备好的地址信息结构体,为套接字绑定IP和portif(bind(server,(addr_t*)&addr,sizeof(addr))==-1){perror("bind");return 1;}//监听listen(server,10);addr_in_t client_addr = {0};socklen_t  client_len =sizeof(addr);int client = accept(server ,(addr_t*)&client_addr,&client_len);printf("客户端连接成功\n");//服务器接收消息while(1){struct Pack pack;//将服务器与客户端的消息写入文件int res = read(client,&pack,sizeof(pack));printf("res=%d\n",res);if(res==0){printf("客户端断开连接\n");close(client);break;}if(pack.type == regist){printf("接收到注册请求 ,账号=%s,密码=%s\n",pack.id, pack.pswd);}else if(pack.type ==  login){printf("接收到登录请求 ,账号=%s,密码=%s\n",pack.id, pack.pswd);}else{break;}}//关闭套接字close(server);return 0;
}
//客户端文件#include "login.h"int main(int argc, const char *argv[])
{if(argc != 2){printf("请输入端口号\n");return 1;                  }int port = atoi(argv[1]);int client = socket(AF_INET ,SOCK_STREAM,0);addr_in_t addr ={0};addr.sin_family =AF_INET;addr.sin_port = htons(port);addr.sin_addr.s_addr = inet_addr("127.0.0.1");if(connect(client,(addr_t*)&addr,sizeof(addr))==-1){perror("connect");return 1;}//客户端发送消息while(1){struct Pack pack ;int option=0;printf("1、注册\n");printf("2、登录\n");printf("3、退出\n");printf("请输入你的选择:");scanf("%d",&option);while(getchar()!=10);if(option==1){printf("请输入账号:");scanf("%19s",pack.id);while(getchar()!=10);printf("请输入密码:");scanf("%19s",pack.pswd);while(getchar()!=10);pack.type=regist;write(client,&pack,sizeof(pack));}else if(option==2){printf("请输入账号:");scanf("%19s",pack.id);while(getchar()!=10);printf("请输入密码:");scanf("%19s",pack.pswd);while(getchar()!=10);pack.type=login;write(client,&pack,sizeof(pack));}else{break;}}return 0;
}

2、效果展示

3、结果分析

        输入服务器和客服端的端口号:12345,用户使用的范围(024~65535)。依次实现注册,登录,退出服务器的功能。使用了定长协议包避免粘包出现,区分发送的每组数据。后面将使用动态协议包处理粘包问题。

        该程序不完善,功能3没有设置特定值退出服务器,除了1和2以外,任意整型值均可退出服务器和客户端的连接,后期加以修改。

关键字:手机万能浏览器_移动商城个人中心_windows优化大师是什么_seo怎样优化网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: