里面包含聊天室的客户端和服务器端的源文件和一份完整的设计报告。
一、 系统概要本系统能实现基于VC++的网络聊天室系统。
有单独的客户端、服务器端。
服务器应用程序能够接受来自客户端的广播,然后向客户端发送本机的IP与服务端口,让客户端接入到服务器进行聊天,检测用户名是否合法(重复),服务器责接收来自客户端的聊天信息,并根据用户的需求发送给指定的人或所有人,能够给出上线下线提示。
客户端能够发出连接请求,能编辑发送信息,可以指定发给单人或所有人,能显示聊天人数,上线下线用户等。
二、 通信规范的制定服务请求规范:服务器端:(1)创建一个UDP的套接字,接受来自客户端的广播请求,当请求报文内容为“REQUESTFORIPADDRESSANDSERVERPORT”时,接受请求,给客户端发送本服务器TCP聊天室的端口号。
(2)创建一个主要的TCP协议的套接字负责客户端TCP连接,处理它的连接请求事件。
(3)在主要的TCP连接协议的套接字里面再创建TCP套接字保存到动态数组里,在主要的套接字接受请求后,就用这些套接字和客户端发送和接受数据。
客户端:(1)当用户按“连接”按钮时,创建UDP协议套接字,给本地计算机发广播,广播内容为“REQUESTFORIPADDRESSANDSERVERPORT”。
(2)当收到服务器端的回应,收到服务器发来的端口号后,关闭UDP连接。
根据服务器的IP地址和端口号重新创建TCP连接。
故我思考:客户端一定要知道服务器的一个端口,我假设它知道服务器UDP服务的端口,通过发广播给服务器的UDP服务套接字,然后等待该套接字发回服务器TCP聊天室服务的端口号,IP地址用ReceiveForom也苛刻得到。
通信规范通信规范的制定主要跟老师给出的差不多,并做了一小点增加:(增加验证用户名是否与聊天室已有用户重复,在服务器给客户端的消息中,增加标志0)①TCP/IP数据通信---“聊天”消息传输格式客户机-服务器(1)传输“用户名”STX+1+用户名+ETX(2)悄悄话STX+2+用户名+”,”+内容+ETX(3)对所有人说STX+3+内容+ETX服务器-客户机 (0)请求用户名与在线用户名重复 //改进 STX+0+用户名+EXT(1)首次传输在线用户名STX+1+用户名+ETX(2)传输新到用户名STX+2+用户名+ETX(3)传输离线用户名STX+3+用户名+ETX(4)传输聊天数据STX+4+内容+ETX(注:STX为CHR(2),ETX为CHR(3))三、 主要模块的设计分析四、 系统运行效果(要求有屏幕截图)五、 心得与体会
2023/7/8 2:52:45 4.88MB 聊天室 网络聊天室 VC聊天室 CSocket
1
基于对抗攻击(AdversarialAttack)相关的接受paper不少,这几年比如对抗攻击、基于图数据的对抗攻击、NLP、CV上的攻击防御等等一些列前沿的方法和应用受到了很多人的关注,也是当前比较火的topic。
2023/7/4 15:21:43 13.34MB 对抗攻击
1
针对于卫星接受数据的卡尔曼滤波定位,主要是UKFsage自适应滤波的MATLAB程序里面有定位的误差图数据包定位仿真结果等
2023/7/4 8:39:44 780KB GPS定位仿真 的卡尔曼滤波程序
1
1、服务器:负责处理各个客户端的信息,并负责将信息进行转发。
(1)服务器主要负责响应客户端的各种信息,包括用户的上线,用户的聊天字符串,各个客户端的信息相互转发。
(2)服务器的实现有以下几个类构成:Server类,ServerThread类和clientThread类,其中Server类主要是进行初始化的工作,ServerThread类负责对用户登录上线,各个客户端信息的处理,clientThread类实现经服务器处理过的消息通过字符流机制反馈到消息面板上显示出来。
2、客户端:用户使用界面,负责接受信息以及与服务器进行通信。
(1)客户端负责为用户提供聊天界面,将信息发送至服务器,接受服务器的反馈信息等一系列的工作。
(2)客户端的实现有以下几个类构成:Client类,messageThread类。
messageThread类负责消息的线程多开和处理消息的处理,Client类负责与服务器,其它客户端进行通信。
2023/7/2 22:37:45 9KB 聊天室 局域网 Java
1
实现了交易的各种情况,一方发出订单,一方接受订单,一方取消订单,合同终止。
2023/7/1 3:50:54 1.84MB 交易系统
1
安卓蓝牙2.0、4.0封装示例、具体使用,如何扫描蓝牙设备、连接蓝牙设备、发送具体消息、接受蓝牙信息和如何处理
2023/7/1 3:02:43 14.13MB 蓝牙2.0 蓝牙4.0
1
压缩包里面有四个项目,分别是android端UDP发送、接受UDP广播程序,PC端UDP发送、接受UDP广播程序。
大致描述:客户端发送UDP广播到局域网,服务端收到广播后,获得客户端ip,发送一次socket请求,客户端收到socket请求获得服务端ip
2023/6/30 23:02:14 2.79MB android/java UDP TCP/IP
1
sqlrowssqlrows是一个静态代码分析器,它通过报告sql.Rows使用错误的诊断信息来帮助发现错误。
安装您可以通过goget命令获取sqlrows。
$goget-ugithub.com/gostaticanalysis/sqlrows快速开始当Go为1.12或更高版本时,sqlrows使用govet运行,如下所示。
$govet-vettool=$(whichsqlrows)github.com/you/sample_api/...当Go低于1.12时,只需使用包名称(导入路径)运行sqlrows命令。
但是它不能接受--tags某些选项。
$sqlrowsgithub.com/you/sample_api/...分析仪使用*sql.Rows时,sqlrows检查一个常见错误。
首先,必须在defer函数中调用rows.Close()。
如果您意外无法扫描记录并忘记关闭*sql.Rows则将不会重用连接。
rows,err:=db.QueryContext(ctx,"SELECT*
2023/6/15 21:34:57 11KB mysql go golang sql
1
如果你会一点C、C++语言,你就可以学习游戏编程了,开发真正的游戏!如果你学过一点C++更好,没学过也没关系。
本课程教你从零基础开始开发7个完整的游戏:Brainiac、LightCycles、Henway、BattleOffice、MeteorDefense、SpaceOut、StuntJumper。
教程无KEYwmv版本,手机平板等移动设备均可观看!第1部分入门第1章学习开发游戏的基础知识1.1认识视频游戏1.1.1为什么人们如此沉迷于开发视频游戏1.1.2视频游戏的类型1.2学习游戏设计的要素1.2.1提出基本思想1.2.2整理剧情1.2.3可视化图形1.2.4为游戏选择正确的声音1.2.5使用控制器控制游戏1.2.6确定游戏模式1.3面向对象的编程和游戏1.3.1理解OOP1.3.2在游戏中应用OOP1.4研究相关工具1.4.1编译器和开发环境1.4.2选择图形工具1.4.3选择声音和音乐工具1.5小结1.6亲身实践第2章创建游戏引擎2.1什么是游戏引擎2.2考虑游戏引擎的作用2.2.1将游戏分解为事件2.2.2建立游戏的计时机制2.3开发游戏引擎2.3.1游戏事件函数2.3.2GameEngine类2.4开发Blizzard示例2.4.1编写程序代码2.4.2测试完成的程序2.5小结2.6游戏大变身第3章学习绘制基本图形3.1图形基础3.1.1理解图形坐标系统3.1.2学习颜色的基础知识3.2查看Windows中的图形3.2.1使用设备环境3.2.2使用画笔写3.2.3使用画刷绘制3.2.4使用位图绘制图像3.2.5使用调色板管理颜色3.3绘制窗口3.3.1绘制文本3.3.2绘制图元3.3.3使用画笔和画刷3.4开发CropCircles示例3.4.1编写程序代码3.4.2测试完成的程序3.5小结3.6亲身实践第4章绘制图形图像4.1位图图像的基础知识4.2深入学习位图4.3开发位图类4.3.1位图类的工作原理4.3.2整合代码4.4开发Slideshow示例4.4.1编写程序代码4.4.2汇集资源4.4.3测试完成的程序4.5小结4.6游戏大变身第2部分与游戏玩家交互第5章使用键盘和鼠标控制游戏5.1游戏与用户输入5.2了解用户输入设备5.2.1接受键盘输入5.2.2响应鼠标5.2.3使用游戏杆交互5.3评估游戏的键盘输入5.4跟踪鼠标5.5向游戏引擎添加输入支持5.5.1添加键盘支持5.5.2添加鼠标支持5.5.3修改Bitmap类5.6开发UFO示例5.6.1编写程序代码5.6.2测试完成的程序5.7小结5.8亲身实践第6章示例游戏:Brainiac6.1游戏的玩法6.2设计游戏6.3开发游戏6.4测试游戏6.5小结6.6游戏大变身第7章使用游戏杆改进输入7.1了解游戏杆的基础知识7.2校准游戏杆7.3追踪游戏杆的移动7.4向游戏引擎添加游戏杆支持7.4.1访问Win32多媒体功能7.4.2开发游戏杆代码7.5开发UFO2示例7.5.1编写程序代码7.5.2测试完成的程序7.6小结7.7亲身实践第8章示例游戏:LightCycles8.1游戏的玩法8.2设计游戏8.3开发游戏8.4测试游戏8.5小结8.6游戏大变身第3部分在游戏中使用子画面第9章使用于画面动画移动对象9.1理解动画的基础知识9.1.1动画和帧频9.1.2了解计算机动画9.22D动画与3D动画9.3理解2D动画的类型9.3.1基于帧的动画9.3.2基于形状的动画9.4将子画面动画应用于游戏9.5设计通用的子画面9.6创建Sprite类9.6.1创建和破坏子画面9.6.2更新子画面
2023/6/14 9:57:24 92B C++游戏
1
2.5主要变动:1.重要改进:新版本中Delphi下的VCL控件已经比较完善,封装良好,与Delphi无缝连接,改变了旧版中需要将Dataset中的数据复制到报表引擎中的实现方式,通过模拟ADO接口的方式直接支持BDE/ClientDataset/等非ADO方式的Dataset,不需要考虑太多的COM方面的因素,强烈建议Delphi的开发者直接使用该VCL控件。
使用VCL控件编译的程序发布时,将AcReport.dll和您的EXE放在同一个文件夹下一起发布即可,不需要运行RegSvr32来注册控件,VCL中的代码会自动注册该控件。
2.完善文本控制方式(在设计器界面上增加了此项菜单):1).当文本控制设置为自动适应单元格(自动缩放字体)时,选择上对齐方式时,也能自动换行。
2)当文本控制设置为截断字符时,支持自动换行,保持单元格的高度不变,在某些特殊应用中,不管文本如何变化,可以保持表格的形状不变。
3.增加了OnSaveReport事件,当用户在设计器中点击“保存”按扭时,会触发此事件,程序可以响应此事件执行自定义保存,例如可以将报表保存到数据库中,或者返回一个信息给设计器用户。
4.直接支持ADO.net中的Dataset和DataTable对象,不需要再通过CustDataBuiler对象来转换,大大提高了在.net下的运行速度。
(需要引用AcNetUtils.dll,具体使用方法请参考Demo)代码示例://Dataset://2.5以前的版本需要将Ado.net下datatable在AC中copy一个复本,速度比较慢//AcReport.AcUtils.CopyDatasetToAcRptEngine(mDataset,mac,false);//新版本的处理方式,通过ADO-ADO.net适配器的方式直接访问DbAdapter.FillDatasetToAC(mDataset,mac);//DataTable:mDataset.Tables["zlemployee"].TableName="雇员档案";AcReport.AcUtils.CopyTableToAcRptEngine(mDataset.Tables["雇员档案"],mac,false);//重新加入一个表到AcReport(旧版本方式)//在2.5以后的版本中,可以用如下的方式将ADO.net的DataTable对象通过AcRecordsetAdapter转换为ADO接口的方式直接加入到AcEngine,//这样做就不需要在AC中复制一个复本,大大提高的速度。
AcRecordsetAdapterRecordAdp=newAcRecordsetAdapter(mDataset.Tables["雇员档案"]);mac.AddNetAdoData("雇员档案",RecordAdp);//以上两行也可以直接调用AcNetUtils类库里提供的现成方法(效果是一样的):AcNetUtils.DbAdapter.FillDataTableToAC(mDataset.Tables["雇员档案"],mac);5.可拖动对象设计功能增强6.支持条码Code128AutoACReport简介AnycellReport(简称ACReport)是一款中国式报表组件,是国内最早的基于表格,支持图文混排、公式和脚本的中国式报表工具之一。
就如AnycellReport的名称那样,灵活强大的表格功能一直是ACReport区别于其它软件或控件最显著的特征之一,ACReport表格取消了传统表格概念中“列”的概念,每一行上的单元格数量可以不等,且可以自由活动,勿须上下对齐,在制作复杂的中国式报表时可以避免很多不必要的合并拆分操作,制作表格更加方便和随心所欲,并且省时省力。
ACReport单元格支持多种丰富的形态,例如格式化文本、图片、图表、条码、OLE容器等。
ACReport的一些基本特点:1.独具特色的表格,风格与Word表格相似,但可以做出比Word或Excel更灵活的表格来。
2.功能全面、专业的中国式报表设计器,中国用户更易于学习和接受。
3.支持多种单元格样式,可以打印图像、图表(直方图、折线图等)、Rich文本、条形码、中式财务帐薄、支持在报表中嵌入Word、Excel文档等。
4.强大的计算和合计功能。
内置表达式解析系统和函数库。
5.可扩充性,可以在应用程序中给报表引擎扩充函数库、报表样式和单元格样式。
6.支持多种报表样式,如清单式、分组、交叉表、以及子报表
2023/6/13 6:34:58 21.36MB ACReport Anycell 中国式报表 2.5
1
共 440 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡