• 基于TCP的网络聊天室的设计(一步一步教你CSocket网络编程)

    里面包含聊天室的客户端和服务器端的源文件和一份完整的设计报告。 一、 系统概要 本系统能实现基于VC++的网络聊天室系统。有单独的客户端、服务器端。 服务器应用程序能够接受来自客户端的广播,然后向客户端发送本机的IP与服务端口,让客户端接入到服务器进行聊天,检测用户名是否合法(重复),服务器责接收来自客户端的聊天信息,并根据用户的需求发送给指定的人或所有人,能够给出上线下线提示。客户端能够发出连接请求,能编辑发送信息,可以指定发给单人或所有人,能显示聊天人数,上线下线用户等。 二、 通信规范的制定 服务请求规范: 服务器端: (1) 创建一个UDP的套接字,接受来自客户端的广播请求,当请求报文内容为“REQUEST FOR IP ADDRESS AND SERVERPORT”时,接受请求,给客户端发送本服务器TCP聊天室的端口号。 (2) 创建一个主要的TCP协议的套接字负责客户端TCP连接 ,处理它的连接请求事件。 (3)在主要的TCP连接协议的套接字里面再创建TCP套接字保存到动态数组里,在主要的套接字接受请求后 ,就用这些套接字和客户端发送和接受数据。 客户端: (1) 当用户按“连接”按钮时,创建UDP协议套接字,给本地计算机发广播,广播内容为“REQUEST FOR IP ADDRESS AND SERVERPORT”。 (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)) 三、 主要模块的设计分析 四、 系统运行效果 (要求有屏幕截图) 五、 心得与体会

    5
    1257
    4.88MB
    2010-01-02
    46
  • java课程设计-计算器-功能完整的科学计算器-仿windows计算器

    java课程设计,里面包含源程序和课程设计报告 题目要求:编写一计算器,仿照windows xp计算器界面,能实现基本的运算及一些科学运算。 能实现的运算如下: "+",加 "-",减 "*",乘 "/",除 "x^y",x的y次方 "Mod",取模 "And",相与 "Or",相或 "Xor",异或 "Lsh",左移 "Rsh",右移 "sqrt",开根号 "%",取百分数 "1/X",求倒数 正弦余弦函数:"sin", "cos", "tan", 对数函数:"ln", "log",阶乘: "n!",立方:"x^3", 平方:"x^2", 取反:"Not" }; 同时还提供菜单功能,可以复制粘贴运算结果,给出“科学型”和“基本型”运算选择菜单,给出运算器帮助与程序、作者信息 2.更改程序图标为计算器图标 3.程序不足,对一些科学计算没有进行计算值的校验,希望读者自行加入。

    4
    1882
    126KB
    2009-12-21
    47
  • 数据结构实验报告-实现二叉树的基本操作-用顺序存储和链式存储结构

    参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著 要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。有个亮点是利用字符在dos界面显示二叉树的结构形态。 里面包含了完整的源程序和实验报告文档。 实验报告包含了完整的步骤包括: 一.抽象数据类型二叉树的定义 二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现 三.测试方案。包括详细的测试函数 四.测试结果。对所有操作的测试过程中二叉树的变化截图。 五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。 六.实验总结和体会 实现的基本操作如下: InitBiTree(&T) DestroyBiTree(&T) CreateBiTree(&T) ClearBiTree(&T) BiTreeEmpty(T) BiTreeDepth(T) Root(T) Value(T,e) Assign(T,&e,value) Parent(T,e) LeftChild(T,e) RightChild(T,e) LeftSibling(T,e) RightSibling(T,e) InsertChild(T,p,LR,c) DeleteChild(T,p,LR) PreOrderTraverse(T,Visit()) InOrderTraverse(T,Visit()) PostOrderTraverse(T,Visit()) LevelOrderTraverse(T,Visit()) 下载清单: Base.h //全局常量、公共变量、公共函数等 BiTree.h //二叉链表二叉树实现 BiTree_Main.cpp //二叉链表二叉树测试程序 SqBiTree.h //顺序存储二叉树实现 SqBiTree_Main.cpp //顺序存储二叉树测试程序 抽象数据类型实现-二叉树-实验报告.doc

    5
    3447
    447KB
    2009-11-06
    49
  • 数据结构课程设计-图书管理-用B树对书号进行索引-评分获得优秀

    题目采自 《数据结构题集》(c语言版)(严蔚敏`吴伟民)6.3 图书管理,最大的难度在于要求用B树对书号进行索引。 设计语言:C语言 编译环境: VC++6.0 里面包含完整的源程序和报告文档,程序为dos界面,有彩色菜单,对数据显示实现表格化……本课程设计成绩为优秀。 源程序有注释,报告文档完全按要求,包括所用数据结构的描述与实现、算法的时空分析等都包括在内。 程序所能达到的功能 1图书采编入库(用B树对书号建立索引) 2清除库存 3图书借阅 4图书归还 5图书预约 6列出某著者全部著作名 7列出某种书的状态(包括图书基本信息和该书借者名单、 预约者名单) 8每次插入或删除一个关键字后以凹入表显示B树的状态 9把一次会话过程中的全部人机对话记录入一个日志文件中 10在程序主界面显示当前系统时间 一、 需求分析 1. 书号和借阅证号、库存量、出版年份用整型表示;书名用20位字符型数组,著者和借阅者姓名用30位字符型数组表示;图书价格用浮点型表示。图书入库时输入图书的书号、书名、著者、总量等完整信息,清除库存时输入图书书号,借阅和归还时输入书号和借阅者证号,姓名等信息,并记录系统时间为借书日期。 2. 借书和归还时显示图书的信息。插入、删除后用凹入表显示以书号建立的B树状态。查看图书状态,以表格显示图书的基本信息,借阅者名单和预约者名单。 ……………… 课程设计清单: base.h //全程常量、全局变量和公共函数等 btree.h //B树类型单元 library.h //书库类型单元 main.cpp //主程序 bookiofo.dat //图书信息文件 borrower.dat //借书者姓名文件 bespeaker.dat //预约者姓名文件 main.exe //编译得到的可执行文件 数据结构课程设计实验报告-图书管理.doc

    5
    510
    360KB
    2009-11-06
    20
  • 汇编语言实验及课程设计报告+源程序

    汇编的几次完整的实验报告,包括实验目的,实验内容,源程序和心得体会。源程序有注释。 实验题目如下: 1.比较字符串sample.asm 2.用表格形式显示ASCII字符SMASCII 3.分类统计字符个数COUNT_CHAR 4.查找电话号码phone 二、实验内容 (1) 要求程序建立一个可存放50项的电话号码表,每项包括人名(20个字符)及电 话号码(8个字符)两部分; (2) 程序可接收输入人名及相应的电话号码,并把它们加入电话号码表中; (3) 凡有新的输入后,程序应按人名对电话号码表重新排序; (4) 程序可接收需要查找电话号码的人名,并从电话号码表中查出其电话号码, 再在屏幕上以如下格式显示出来。 name tel. X X X X X X X X

    4
    194
    34KB
    2009-11-06
    10
关注 私信
上传资源赚积分or赚钱