(3/7)LSD项目----远程终端管理系统

第三天:

项目进度要求:

1.做登录功能。a.要求同一个用户名不能在两个终端同时登录,b.服务器再建一个在线链表或者标识符标志在线状态,c登录时,密码三次错误登出d.退出包的设立。

今天工作内容:

1.调试昨天写的注册代码。

2.写登录程序代码并做调试、

小bug

1,问题:全局变量head只在main.c里面有值,其他的里面没有值,原因:在main.c里面又重新定义的head(局部变量);而head的值会就近赋值原则。解决方法:去掉main.c里面的新定义的head;

总结:

1. 服务器与客户端通信最好都是用数据包结构体,客户端根据数据包中不同的标识符flag来提示不同的信息。善用标识符,对代码起到很好的作用

2,.码代码快速有效的方法是先一个函数,就运行一次,然后在调试下,在完成一个整个功能再做大的调试,反复验证不同的情况。已达到代码能够面对不同的情况。

3,,宏定义常量很重要,既能够快速知道不同的情况是什么含义,又面对能面对不同情况不至于弄混数字。注意修改标识符 常量时,要联合显示输出端一起改变。

4,/在写代码的时候,会有很多想法冒出来,很容易分散注意力,不放把这些写下来,有时候会有不错的点子。例如下面就是我写代码冒出的杂念

先把客户端的main.c 和 其他文件定义完整

把客户端的功能选择端和登录端写出来;写出退出功能,定义一个宏EXIT赋值给数据包的标识符flag、当标识符 == EXIT时,客户端正常退出,服务器端正常退出

在服务器端写出数据包类型 选择功能函数

再用宏#define重定义两边的常量保持一致;要区分type的宏和flag宏。
再在服务器里写出登录程序,遍历列表先找到用户,在比对其密码、遗留问题,未反馈给客户端已登录消息
写一个switch flag 标识符输出反馈到客户端的函数;
客户端发送数据包过来,服务器也可以发送数据包过去,客户端根据数据包里flag值输出相应的提示、只要两边的数据协议是一样的,没什么大问题。服务器端是否要记录出错情况呢?






最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,668评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,775评论 25 709
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 11,176评论 1 13
  • 早起坚持了两个多月了,今天有些放松了,于是赖床一直赖到了6:30左右,比平时足足晚了一个半小时,不过我要说的是,多...
    夯土之锤阅读 4,636评论 6 4
  • 明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间。...
    而淑阅读 3,878评论 2 7