里面包含聊天室的客户端和服务器端的源文件和一份完整的设计报告。
一、 系统概要本系统能实现基于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
豆伴:豆瓣账号备份工具一款Chrome扩展程序,用于备份豆瓣账号数据。
安装此工具基于Chrome扩展开发,因此需要先安装Chromium内核浏览器才能使用。
请先检查你的系统是否已经安装了此类浏览器。
常见的Chromium内核浏览器有:,,等。
如果您所在的地区无法访问Chrome浏览器的官方网站,建议使用浏览器代替。
为了您的系统安全,请不要安装从其他任何非官方渠道(特别是国内某搜索引擎推荐的链接)下载的Chrome浏览器。
1.Chrome网上应用商店如果您所在的地区可以访问,请直接前往://chrome.google.com/webstore/detail/ghppfgfeoafdcaebjoglabppkfmbcjdd进行在线安装。
如果无法打开上面的链接,请选择其他安装方式。
2.本地安装扩展如果您系统中安装了Chromium内核的浏览器,可以前往下载打包的扩展程序,进行本地安装。
安装方法:将下载的压缩包解压缩后保存到本地文件夹中;
:浏览器主菜单,选择“更多工具”-“扩展程序”,或者直接在浏览器地址栏内打开“chrome://extensions/
2023/7/7 0:22:28 2.45MB chrome douban doufen ChromeJavaScript
1
直接下载,之前在本地使用VGG19预训练模型,不女妖下载.pth文件到本地.chche中,之后再使用torchvision.models.vgg19(pretrained=True)就会自动从cache中读取。
2023/7/6 22:55:05 548.05MB .pth
1
Android在线考试系统,项目功能为Android本地,没有后台系统,实现考试的多项功能
2023/7/6 21:08:25 16.71MB android 考试 源码
1
navicat连接报错:CannotloadOCIDLL,InstantClientpackageisrequiredforBaicandTNSconnectionFormoreinformation:http://wiki.navicat.com/wiki/index.php/Instant_client_required错误原因本地安装的是64位的Oracle,但由于Navicat仅支持32位的,因此我们还需下载一个32位的客户端。
[解决方案]下载32位客户端,配置进navicat中官方下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html第1步:在上述地址中下载文件:instantclient-basic-nt-11.2.0.3.0.7z第2步:解压此安装包,并将解压出的文件合并到:E:\navicatfororacle\instantclient_11_2第3步:打开Navicat,选择工具→选项→其他→OCI,
2023/7/6 10:44:50 44.63MB instantclien Cannot load
1
1、SNTP时钟同步,获取指定IP主机系统时间并设置本地时间的程序源码。
2、客户端调用方法。
3、winXP及win7下开启NTP服务方法.pdf4、NTP协议格式(中文).doc
2023/7/6 2:25:28 1.74MB C# NTP SNTP 时钟同步
1
爬的c/c++官网的reference,用起来非常方便,可以直接索引想查询的库和函数,本地资料,再也不用在官网卡着了;
2023/7/5 6:38:55 6.32MB c/c++reference
1
各种各样的一切与和最小博客。
这是一个带有预配置的SanityStudio(/studio)和Eleventy的非常基本设置(/web)的monorepo。
快速开始npminstall在本地的项目根文件夹中npmrunsanity-init以使用新项目或现有项目重新配置工作室npmrundev以观看模式启动Studio和11tySanityStudio在上运行11ty输出的静态文件_sitenpmrunbuild以在本地构建生产在Netlify上部署您可以将Studio和11ty博客在Netlify上,作为两个应用程序。
登录到您的Netlify帐户,并使用以下设置将它们添加为两个单独的应用程序:工作室存储库:基本目录:studio生成命令:npmrunbuild&&cp./n
2023/7/4 12:26:17 639KB CSS
1
《管理VMwarevSAN》介绍了如何在VMwarevSphere®环境中配置、管理和监控VMwarevSAN群集。
此外,《管理VMwarevSAN》还说明了如何组织在vSAN群集中充当存储容量设备的本地物理存储资源,如何为部署到vSAN数据存储的虚拟机定义存储策略以及如何管理vSAN群集中的故障。
2023/7/3 21:38:42 2.45MB vmware vsan vsphere
1
用Python实现一个软件自动升级系统。
设计思路很简单:当有新版本需要发布时,将文件放在服务端,生成一个记录每个文件变化的配置文件。
客户端本地也有一个记录文件信息的配置文件,客户端检查更新时,将服务端的配置文件下载下来,与本地配置文件进行比较,然后下载有变化的文件,覆盖本地文件(如果文件正在使用中,可能无法覆盖,这时候更新前应该先关闭正在运行的客户端),中间有Tkinter做的界面提示更新进度。
更新结束后根据策略决定是否重启客户端。
2023/7/3 16:34:44 10.92MB python 自动升级系统 软件升级
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡