局域网聊天课程设计

合集下载

java课程设计---局域网聊天程序的设计与实现

java课程设计---局域网聊天程序的设计与实现

课程设计报告
设计名称:面向对象课程设计
选题名称:局域网聊天程序的设计与实现姓名:学号:
专业班级:
系(院):
设计时间:
设计地点:
面向对象课程设计报告第7 页,共14 页
面向对象课程设计报告第8 页,共14 页
面向对象课程设计报告第9 页,共14 页
面向对象课程设计报告第10 页,共14 页
面向对象课程设计报告第11 页,共14 页
(2).用户使用说明:
在昵称里输入想要使用的名字,在主机地址写入运行服务器端程序的电脑的ip地址,默认为localhost,代表本机,在端口号中输入和服务器端程序约定好的端口号,默认为4331,如果不一致会导致运行失败,最后选择性别后点击“连接”按钮连接服务器,弹出聊天界面。

进入聊天界面后在公共聊天区会自动显示“欢迎xx”信息。

在用户列表会显示在线的用户,点击某个用户的名字后聊天对象自动变成被电击的用户,默认是所有人。

万一用户列表显示不正确,点击刷新按钮可以从服务器重新获取用户列表。

个性化设置(仅本地有效):四种主题,字体和颜色自定义,自动换行,发送快捷键。

有用户退出会在公共聊天区显示系统信息提示并自动刷新用户列表。

(3).测试结果:
运行程序首先出现的登陆界面。

测试用户:Jarry
连接成功后的聊天界面,公共聊天区显示发给所有人的信息,我的频道显示发给指定人的信息。

界面为红色,颜色为蓝色,字体为楷体,聊天对象为Tom。

局域网聊天室 JAVA课程设计

局域网聊天室  JAVA课程设计

《面向对象程序设计》课程设计报告题目:局域网聊天室程序设计院(系):信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名:程伟学号:20121183011指导教师:吴奕2014年12月29日至2015年1月9日华中科技大学武昌分校制面向对象程序设计课程设计任务书一、设计(调查报告/论文)题目局域网聊天室程序设计二、设计(调查报告/论文)主要内容内容:用来提供局域网中用户之间的交互通讯,使用Eclipse与JDK1.6工具,操作系统为WINDOWS,采用面向对象方法完成,包括总体设计、详细设计、编码实现、测试。

运用套接字Socket连接技术,实现客户端的套接字对象和服务器端的套接字对象之间的输入输出流的连接,达到数据报通信的目的基本功能与要求:实现聊天室服务器端的要求:①设计实现在特定端口上进行侦听,等待客户端的连接。

②用户确定服务器的侦听端口。

③系统能向已经连接到服务器端的用户发送系统消息。

④系统能统计在线人数。

⑤当系统停止服务时,设计程序应能断开所有的用户连接。

实现聊天室客户端的要求:①系统能连接已经开启聊天服务的服务端。

②用户确定要连接服务器端的IP地址与端口号,连接后系统应能提供显示的用户名。

③当服务器端开启的话,实现用户的登录与注销。

④用户可以通过设计的系统向所有人或者某一个人发送消息。

三、原始资料1.《面向对象程序设计课程设计》指导书2.耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.四、要求的设计(调查/论文)成果1.课程设计报告2.课程设计软件五、进程安排布置任务,查找资料、需求分析1天总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料[1]张广彬.Java课程设计案例精编(第二版).北京:清华大学出版社,2011.[2]耿祥义.Java课程设计(第二版).北京:清华大学出版社,2008.[3]耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.[4]邹林达.陈国君Java2程序设计基础.北京:清华大学出版社,2010.[5]邹林达.Java2程序设计基础实验指导.北京:清华大学,2010.指导教师(签名):20年月日目录1需求与总体设计 (1)1.1需求与系统功能图 (1)1.2系统类图 (2)1.2.1服务端系统 (2)1.2.2客户端服务系统 (3)2详细设计 (4)2.1聊天室服务器端的设计 (4)2.1.1ChatServer类 (4)2.1.2ServerListen类 (5)2.1.3ServerReceive类 (5)2.1.4PortConf类 (6)2.1.5Help类 (6)2.1.6UserLinkList类 (7)2.1.7Node类 (7)2.2聊天室客户端设计 (8)2.2.1ChatClient类 (8)2.2.2ConnectConf类 (9)2.2.3UserConf类 (9)2.2.4Help类 (10)2.2.5ClientReceive类 (10)3编码实现 (11)3.1服务器编码实现 (11)3.1.1ChatServer类 (11)3.1.2ServerListen类 (21)3.1.3ServerReceive类 (23)3.1.4PortConf类 (27)3.1.5UserLinkList类 (30)3.1.6Node类 (31)3.1.7Help类 (32)3.2客户端编码实现 (34)3.2.1ChatClient类 (34)3.2.2ClientReceive类 (46)3.2.3ConnectConf类 (48)3.2.4UserConf类 (51)3.2.5Hlep类 (54)4系统测试 (56)总结 (57)1需求与总体设计1.1需求与系统功能图本系统所要实现的主要功能是为广大用户提供一个借助网络进行人际交往的平台。

C++面向对象课程设计报告(局域网聊天程序)

C++面向对象课程设计报告(局域网聊天程序)

XXXXX大学C++面向对象课程设计报告院(系):计算机工程学院专业:计算机网络工程学生姓名: XXXXXX班级:_网络081__学号: 200807255题目:局域网聊天程序起迄日期:_2010.12.20 – 2010.12.31设计地点: XX理工大学2#401指导教师: XXXXXX完成日期: 2010 年 12 月 31 日C++面向对象课程设计报告:局域网聊天程序2 目录一需求分析 (3)1.1 客户机端 (3)1.2 服务器端 (3)二设计内容 (4)2.1 程序整体结构 (4)2.2 各部分子模块功能 (5)2.3 各子模块代码编写 (6)三调试分析 (7)3.1 实际完成情况 (7)3.2 出现的问题及解决方案 (7)3.3 可以改进的地方 (8)3.4 可以扩充的功能 (9)四用户手册 (10)4.1 程序主界面 (10)4.2 获取本地信息 (10)4.3 发送信息 (11)4.4 接收信息 (11)4.5 总体演示 (11)五设计总结 (12)六参考文献 (13)七附录 (14)一需求分析此次开发的网络聊天工具可作为个人的交流工具使用,通信的安全性不是很高,但要求信息的响应速度要较快,让用户充分享受到网络即时消息的方便和快捷。

本聊天工具由服务器端程序和客户端程序两部分组成,整体采用C++平台开发,没有使用管理数据库。

服务器和与客户端都包含与用户的交互式界面,它有必要的界面的按钮,向用户提供网络即时消息的功能。

本聊天需要包含如下本功能:1.1 客户机端✓获取本地IP地址✓获取本地通信端口✓获取远程IP地址✓获取本地主机名✓获取从服务器端发送过来的信息✓给服务器发送用户自定义的数据1.2 服务器端✓获取本地IP地址✓获取本地通信端口✓获取远程IP地址✓获取本地主机名✓获取从服务器端发送过来的信息✓向客户机发送用户自定义的数据3C++面向对象课程设计报告:局域网聊天程序二设计内容2.1 程序整体结构42.2 各部分子模块功能5C++面向对象课程设计报告:局域网聊天程序2.3 各子模块代码编写1)WM_INITDIALOG模块switch(UMsg){case WM_INITDIALOG:CLIENT.INIT_MYSOCKET(hwndDlg);===========================================void MYSOCKET::INIT_MYSOCKET(HWND &hwndDlg){ WSAStartup(0x0101, &wsaData);udp_sd=socket(AF_INET, SOCK_DGRAM, 0);bind(udp_sd, (LPSOCKADDR)&Local_PC, sizeof(Local_PC));WSAAsyncSelect(udp_sd, hwndDlg, WM_USER+1, FD_READ);}2)IDOK模块switch(LOWORD(wParam)){case IDOK:CLIENT.MYSOCK_SEND(hwndDlg);break;===========================================void MYSOCKET::MYSOCK_SEND(HWND &hwndDlg){ GetDlgItemText(hwndDlg, IDC_SEND, Buffer, sizeof(Buffer));sendto(udp_sd, Buffer, strlen(Buffer), 0, (struct sockaddr *)&Remote_PC, len);}3)IDCANCEL模块case IDCANCEL:CLIENT.END_MYSOCKET(hwndDlg);EndDialog(hwndDlg, 0);break;===========================================void END_MYSOCKET(HWND &hwndDlg){ WSAAsyncSelect(udp_sd, hwndDlg, 0, 0);closesocket(udp_sd);WSACleanup();}4)FD_READ模块case WM_USER+1:switch(LOWORD(lParam)){case FD_READ:CLIENT.MYSOCK_RECV(hwndDlg);break;}===========================================void MYSOCKET::MYSOCK_RECV(HWND &hwndDlg){recv(udp_sd, Buffer, sizeof(Buffer), 0);SetDlgItemText(hwndDlg, IDC_RECV, Buffer);}6三调试分析3.1 实际完成情况经过几天的学习及调试,该“局域网聊天程序”仅仅能实现点对点通信,不能实现一对多、多对多、多对一等通信模式,也就是说,只能开启一个客户机和一个服务器,若有多个程序副本在运行,则可能导致接收以及发送数据的混乱。

Java局域网聊天程序课程设计(含代码)

Java局域网聊天程序课程设计(含代码)

JAVA聊天室的系统的设计与开发1.主要内容:用JA V A实现基于C/S模式的聊天室系统。

聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。

2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。

2.用户可以配置服务器端的侦听端口,默认端口为8888。

3.向已经连接到服务器端的用户发送系统消息。

4.统计在线人数。

5.当停止服务时,断开所有的用户连接。

B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。

2.用户可以配置要连接的服务器端的IP地址和端口号。

3.用户可以配置连接后显示的用户名。

4.当服务器端开启的话,用户可以随时登录和注销。

5.用户可以向所有人或某一个人发送消息。

学习并掌握一下技术:Java JavaBean 等熟练使用一下开发工具:Eclipse,JCreator 等实现系统上诉的功能。

3.进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 1月1日:完成系统设计1月2日~ 1月5日:完成程序代码的编写1月6日:系统测试与完善1月7日:完成课程设计报告,准备答辩4.主要参考文献:[1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。

基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。

一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。

java课程设计制作简单的Socket聊天局域网

java课程设计制作简单的Socket聊天局域网

2.2 系统整体框架Байду номын сангаас
根据系统软件的功能要求,画出的系统框架图为三组:分别是聊天软件总体图和设 置图及个人资料设置图。 学生局域网聊天软件总体包括在线、返回、断线、设置、关于这个软件、退出等六 项: (如图 1 所示)
沈 阳 大 学
课程设计说明书用纸
NO2
图 1 局域网聊天软件总体框架图
设置包括留言时间、每次启动时出现及发送后最小窗口: (如图 2 所示)
用户的个人参数设置代码如下: :
沈 阳 大 学
课程设计说明书用纸
package chat; import java.awt.*; import yout.*; import javax.swing.*; import java.io.*; import java.awt.event.*; /** * <p>Title: 使用 JAVA 制作的局域网聊天程序</p> * <p>Description: 曹弘葆的 JAVA 作业</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author RoadAhead * @version 1.0 */ public class frm_set extends JFrame { private JScrollPane jsp = new JScrollPane(); private JPanel pan_icon = new JPanel(); private JButton jButton1 = new JButton(); private JButton jButton2 = new JButton(); String uicon=""; private JPanel jPanel1 = new JPanel(); private PaneLayout paneLayout1 = new PaneLayout(); private Label label1 = new Label(); private JTextField ed_uname = new JTextField(); private JLabel lab_icon = new JLabel(); private JLabel jLabel1 = new JLabel(); private JCheckBox cbo_onstart = new JCheckBox(); private JCheckBox cbo_winstate = new JCheckBox(); private Label label2 = new Label(); private JTextField ed_ly = new JTextField(); public frm_set() { this.setTitle("设置用户参数"); this.setBounds(200,150,390,300); // this.setBounds(); try { jbInit(); }

局域网内部聊天系统课程设计汇编

局域网内部聊天系统课程设计汇编

摘要随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。

局域网的发展也同样迅速。

很多政府机构,企业,学校,都是先以一个同意的局域网联结在一起,再分别接入Internet。

因此,基于局域网的即时通信工具,就这样应运而生了。

所以本文提出了一个更加合理的设计,并在Windows平台上加以了实现。

在本系统中,分别创建了客户端和服务端两个程序,用多线程实现不同的并行任务。

并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。

本文通过局域网聊天系统来具体共享内存实现进程间的数据交换,利用Windows消息机制实现进程间的同步,两种机制结合使用。

关键字:局域网;即时通信;客户端;服务端;多线程;共享内存;信息。

目录1课程设计目的 (1)2课程设计要求 (1)3相关知识 (1)4实训设计分析 (3)4.1体系结构设计 (3)4.2功能模块划分 (4)4.3系统流程图 (6)4.4用户界面设计 (7)5程序代码 (9)6运行结果与分析 (13)7结论 (14)8参考文献 (14)1课程设计目的1)巩固和加深学生对C#语言课程的基本知识的理解和掌握2)掌握C#语言编程和程序调试的基本技能3)利用C#语言进行基本的网络软件设计4)掌握书写程序设计说明文档的能力5)提高运用C#语言解决实际问题的能力2课程设计要求1)分析课程设计题目的要求2)写出详细设计说明3)编写程序代码,调试程序使其能正确运行4)设计完成的软件要便于操作和使用5)设计完成后提交课程设计报告3相关知识1、TCP/IP协议[1]通常包含了一系列与“TCP(传输控制协议)”和“IP(网际协议)”有联系的网络协议,它包括其它的协议,应用软件,甚至网络媒介。

这些协议的示例是:UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议、ARP(地址解析协议)和其他一些协议的协议组。

实验4 在局域网中实现网络对话

实验4 在局域网中实现网络对话

实验4在局域网中实现网络对话一、实验目的:通过使用NetMeeting,来实现局域网中各个计算机之间的对话二、实验内容:1、安装Microsoft NetMeeting2、发送呼叫、接收呼叫及挂断会议3、白板及共享应用程序使用4、传送文件5、远程桌面共享Microsoft NetMeeting是一种新的通信方式,使用它可以进行网络会议、传递信息,便于用户使用音频、视频或聊天的方式与他人“交谈”。

在办公局域网中,使用Microsoft NetMeeting实现网络中各个计算机之间的对话,即进行语音通信。

在单位内部小型局域网中,方便地与其他工作人员进行交谈、下达任务及布置工作等。

三、实验步骤:1、安装Microsoft NetMeeting(1)选择“设置—>控制面板”(2)选择“添加/删除程序—>添加/删除Windows组件”(3)在Windows组件向导对话框中,选择“附件和工具”选项,单击“详细信息…”按钮,在弹出的“附件和工具”对话框中,选择“通讯”选项(4)在弹出的“通讯”对话框中,选择“对话”选项,单击“确定”按钮即可。

(说明:在XP系统中,直接在运行对话框中输入:conf,即可进行设置)(5)在设置结束后,单击“程序—>附件—>通讯—>NetMeeting”命令,按提示步骤进行有关的设置:2、发送呼叫、接收呼叫及挂断会议(1)单击“呼叫”按钮,在此输入对方的IP 地址或计算机名称呼叫结束呼叫传送文件白板聊天 共享程序主持网上会议3、白板及共享应用程序使用 使用“白板”程序进行交流呼叫成功后显示当前连接的用户显示聊天双方谈话的历史记录选择消息将要发送的对象发送消息除了白板之外,还可以共享其他的应用程序。

4、向对方传送文件5、远程桌面共享添加文件(1)单击“共享程序”按钮(2)选择“共享”对话框中的“桌面”选项(3)单击“共享”按钮。

软件课程设计报告--局域网聊天程序

软件课程设计报告--局域网聊天程序

软件课程设计报告——C语言班级:姓名:学号:指导教师:日期:年月日目录1设计内容 (1)2应用程序总体分析与设计 (1)3应用程序各功能模块分析与设计 (2)3.1功能模块 (2)3.1.1服务器模块 (2)3.1.2客户端模块 (2)3.2模块流程图 (4)4程序测试 (6)4.1测试过程 (6)4.1.1 VS 2010截图 (6)4.2测试结果 (7)4.2.1服务器端截图 (7)4.2.2客户器端截图 (7)5程序文档 (8)5.1使用说明 (8)5.2程序说明 (8)6 程序源代码 (8)1设计内容通过C语言程序编程实现一个局域网聊天程序,包括服务器端程序和客户端程序,程序能够实现两台主机或多台主机间的基本通信和文件传输。

2应用程序总体分析与设计A.编译预处理命令#include <Winsock.h>#include <stdio.h>#pragma comment (lib,"wsock32.lib")B.该应用程序中使用的基本Winsock函数有:WSAStartup,socket,bind,listen,accept,connect,shutdown和closesocket等,使用数据传输函数有send和recv。

C.服务器程序的步骤如下:1)初始化以及创建套接字,由WSAStartup()和socket()函数完成。

2)要将指定协议的套接字绑定到本地的IP地址和端口号。

这个过程通过bind()函数来完成。

3)服务器处于监听状态,等待客户端连接,以便为它们的请求提供服务。

服务进程必须在所绑定的名字上进行监听。

因此需要把套接字置为监听模式。

通过listen()函数来实现。

4)服务器程序调用函数accept准备接受来自客户端的连接。

如果有一个客户端这时用connect()函数试图建立连接,服务器端就可以接受连接。

5)建立连接后,服务器端和客户端之间就可以使用send()和recv()函数进行通信。

局域网聊天程序(类飞鸽)综合设计

局域网聊天程序(类飞鸽)综合设计

基于Socks局域网内即时通讯软件(类飞鸽)摘要网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet 上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。

由于互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络的用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现在内部网络中进行信息的交流。

本课题设计主要针对局域网通讯而开发设计的,采用的是C/S 构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。

本论文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势。

本设计以 C 编写,能在windows xp 等环境下运行。

设计共分为几大模块,分别是:首先,介绍选题设计内容和目标;其次,介绍需求分析和设计思想(TCP/IP 点对点协议技术,C/S 架构和SOCKET 网络编程技术);然后,设计的具体实现;最后,对工作计划统计以及分析系统进行测试并得到测试结果和附录。

关键词:聊天;文件传输;socket;类飞鸽传书;C/S 结构一、设计内容1.1 课题背景当时间走向21 世纪,当今时代也由工业经济渐渐成为了知识经济、信息经济的时代。

信息的需求量的不停增加,促使了计算机通信的日新月异!虽然网络的使用频率与使用的范围都越来越广泛,但是人们使用的网络的用途主要的还是只有两个:(1).相互之间的沟通,(2).资源共享。

局域网作为网络的一个重要组成部分,它不但用户与外界连接的枢纽,同时也是近距离用户之间沟通与资源共享的一个重要途径。

在这种情况下,如何使局域网内的用户便捷的勾通,以及快速的资源共享,也就成为了人们对网络研究的重点之一。

本系统仿飞鸽传输,是一个局域网内的通迅工具,主要通过Winsockt 完成。

它据有的功能有:(1)局域网内用户间简单的文字聊天功能;(2)局域网内用户间相互的文件、文件夹传输。

网络工程设计课程设计_课程设计报告_局域网聊天软件的设计与实现

网络工程设计课程设计_课程设计报告_局域网聊天软件的设计与实现

网络工程设计课程设计网络工程设计课程设计局域网聊天软件的设计与实现学院计算机工程学院专业班级网络工程2013级1班学生姓名吴嘉明学生学号 201330097014提交日期 2016 年 5月 20 日网络工程设计课程设计摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的QQ等等。

本次网络工程设计课程设计,我选择的课题是局域网聊天软件的设计与实现。

局域网聊天软件作为一种新型的聊天工具可以提供更为及时、可靠、突破了必须有外界网络接入等优点,具有极其广泛的发展前景。

基于Java网络编程的强大功能,本次课程设计使用Java来进行代码的编写。

一般来说,聊天工具大多数由客户端程序和服务器端程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间能够相互通信,由于聊天是多点对多点的,所以在客户端与服务端的实现过程中大量的采用了多线程,这样可以让客户端和服务端更加有效的完成所需服务。

此外,后台数据库采用的是mySql 数据库,其用来保存用户的相关信息。

服务器端与后台数据库建立连接是通过JDBC-ODBC桥连的方式来完成的。

一旦连接建立,服务器端就可以对数据库的数据进行增删改查等操作。

本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。

采用TCP模式进行文字聊天,在客户端之间点对点(C/C)的进行。

本系统采用典型的C/S(客户端/服务器)的框架模式,在该方案中采用Socket(套接字)原理实现网络通信,从而大大降低了程序的开发难度。

使用JAVA语言编写,开发工具采用NetBeans。

本聊天软件主要实现了文件传输、文本聊天、用户注册与登陆等一系列功能。

关键词:客户机/服务器;Java;Socket;多线程;TCP/IPI网络工程设计课程设计目录(各章题序及标题:小四号,宋体,加粗,居左;其余用小四号,宋体)摘要 2II。

局域网聊天程序设计.

局域网聊天程序设计.

青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名: 管巨伟班级软件132 学号:201307227 题目:局域网聊天程序设计起迄日期:2015.6.29 〜2015.7.10设计地点:计算机学院机房指导教师:李传斌杨鑫完成日期:2015 年7月10日任务书一、课程设计目的与要求1.课程设计目的面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能。

所以在《C++ 面向对象程序设计》课程学习完成后,安排课程设计教学环节。

通过课程设计,使学生实际掌握面向对象的程序设计方法,了解C++ 面向对象的设计方法与技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养学生分析实际问题和解决问题的能力,使学生具备使用面向对象程序设计开发工具设计实际系统的能力。

2.课程设计要求结构化程序设计使用的是功能抽象,面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。

“对象”实际上是功能抽象和数据抽象的统一。

C++语言的“对象”是“类”的实例,程序设计的基础是设计类,所以类的有关概念都是重点,尤其要抓住抽象、封装、继承和多态性等要素。

面向对象程序设计的核心是类层次的设计。

而具体类的设计的重点是如何选择数据成员和成员函数。

根据数据成员和成员函数的特点,结合具体问题设计合适的类。

成员函数设计中的难点是选择函数类型及其参数传递方式。

开发系统离不开设计平台,学生应在掌握面向对象程序设计基础上,熟悉并能熟练使用面向对象程序设计开发平台,结合相关理论知识,进行相应系统开发。

二、课程设计内容课程设计题目及要求局域网聊天程序设计:服务端设置,通过对客户端多个线程的监听,显示客户端的上线、下线,与客户端进行信息交流。

开启服务器是通过新建socket,绑定端口号,监听线程,等待客户端连入。

创建动态数组,完成客户端的连入,存储客户端信息。

课程设计局域网聊天

课程设计局域网聊天

课程设计局域网聊天一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握局域网的基本概念、搭建方法和网络安全知识。

技能目标要求学生能够独立搭建简单的局域网,进行文件共享和远程操作。

情感态度价值观目标要求学生树立正确的网络安全意识,尊重网络道德,培养合作精神和创新意识。

通过分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果。

学生能够在课程结束后,理解并掌握局域网的基本原理,能够独立完成局域网的搭建和维护,具备一定的网络安全意识,能够在实际生活中运用所学知识解决实际问题。

二、教学内容根据课程目标,选择和教学内容,确保内容的科学性和系统性。

教学大纲如下:1.局域网的基本概念:介绍局域网的定义、分类和特点,让学生了解局域网的基本概念。

2.局域网的搭建方法:讲解局域网的硬件设备、网络协议和搭建步骤,让学生掌握局域网的搭建方法。

3.局域网的文件共享:介绍文件共享的概念和方法,让学生学会在局域网内进行文件共享。

4.局域网的远程操作:讲解远程操作的原理和方法,让学生能够进行远程操作。

5.网络安全知识:介绍网络安全的基本概念、威胁和防护措施,让学生具备一定的网络安全意识。

三、教学方法选择合适的教学方法,如讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解局域网的基本概念、搭建方法和网络安全知识,帮助学生掌握基本原理。

2.讨论法:学生讨论局域网搭建过程中的问题,培养学生的合作精神和解决问题的能力。

3.案例分析法:分析典型的局域网应用案例,让学生了解局域网在实际生活中的应用。

4.实验法:让学生动手搭建局域网,进行文件共享和远程操作,提高学生的实际操作能力。

四、教学资源选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用权威、实用的教材,如《计算机网络》、《网络安全》等。

2.参考书:推荐学生阅读相关参考书,如《局域网技术手册》、《网络安全防护手册》等。

课程设计——局域网聊天程序设计

课程设计——局域网聊天程序设计

课程设计(论文)说明书题目:局域网聊天程序设计院(系):信息与通信学院专业:信息对抗技术学生姓名:**学号: XXXXXXX指导教师: XXXXXX职称: XXXXXX2010年12 月15 日摘要即时通讯软件的出现正在逐渐改变人们的沟通与交际方式。

无论近在咫尺,还是远隔重洋,也只是在键盘和鼠标之间就可以解决问题。

网络聊天程序越来越影响着我们的网络生活。

习惯了通过类似ICQ、QQ、MSN之类的聊天软件和天南海北的朋友聊天,但是这些聊天程序都需要Internet的支持,而无法在局域网内部“大显身手”。

那么你是否想到过要让单位内部的员工和寝室周围的同学,不用上Internet就可以轻松体验到局域网聊天的快乐呢?有了这种想法,开发局域网聊天工具就有了必要性。

本论文讨论了Windows环境下局域网聊天程序的设计思路和设计方法。

其中网络通信部分采用流行的TCP/IP协议。

程序采用典型的C/S(服务器/客户端)构架。

用socket编程设计网络通讯。

界面设计部分采用Windows MFC框架。

本文最终设计了一个简易版本的聊天软件,包括登陆、退出、消息收/发等功能。

关键词:局域网聊天;Sockets API;C/S构架;Windows MFCAbstractG radually, real-time communicate software are changing our way of communication. No matter haw close at hand or how far by vast oceans people are separated, they just can chat between mouse and keyboard. Network chatting program has a gradual important influence on our life.All of us are used to chatting with friends from all over the country by some popular chat tools, such as ICQ, QQ, MSN. However, these chat tools must rely on support of Internet. Without Internet, they are useless. Based on this kind of situation,do you ever thought that unit staff and dormitory roommates could enjoy the happiness of LAN chat easily without logging in Internet ? Relying on this idea, it's necessary to design a kind of LAN chat tool.This article discusses how to design and develop a LAN chatting program in Windows environment. The network communication part depends on the popular TCP/IP protocol. Software is based on C/S architecture. Network communication is developed with Socket. UI is designed with Windows MFC frame. The article describes a concise chart software version, with the function of logging in/out, adding friend to list, sending/receiving message and so on.Key words:LAN chatting;Sockets API;C/S architecture;Windows MFC frame引言在网络越来越发达的今天,人们对网络的依赖性也越来越大,由此而产生的聊天工具也越来越多,如MSN、QQ、ICQ等,然而这些聊天工具如果没有了Internet 的支持的话人们将无法使用他们进行聊天交流,即使通信双方在同一个局域网中也一样。

局域网聊天软件课程设计_毕业设计

局域网聊天软件课程设计_毕业设计

课程设计报告课程名称:《面向对象程序设计》课程设计题目:贵师院局域网聊天软件姓名:学号:组员:学院:数学与计算机科学专业:计算机科学与技术年级:2011级指导教师:二○一三年七月目录1.设计的目的 (1)2.设计的内容 (1)3.概要设计 (3)3.1局域网聊天QQ的功能 (3)3.2局域网聊天QQ的能模块如下: (3)4.详细设计 (5)4.1编写服务器端程序 (5)4.1.1问题陈述 (5)4.1.2解决方案 (6)4.2客户端程序编写 (7)5.总结 (8)6.参考资料 (8)7.附录 (8)摘要随着互联网的发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多。

本次实验将依照腾讯公司聊天工具QQ的设计,实现局域网网络通信的基本功能,以便在用户在不联网的情况下也可以进行通信。

本文所写的“贵师院局域网聊天软件”是为了解决师院为了解决广大师院同学们上网困难,网费透支,网速慢等困难。

该软件主要包括:服务器响应,登录系统,注册,好友界面,聊天界面等。

在这次的课程设计中,我们应用了MyEclipse 6.0开发工具在WINDOWS平台上开发了一个基于WINDOWS平台的局域网通信工具,我们充分学习了JAVA Swing和awt界面开发技术,使自己在界面应用和界面布局方面得到更多的实践,应用Socket技术实现网络的连接功能,对网络的实现和通信方面有了进一步的理解,多线程方面的应用,使得客户端和服务端可以实现多任务功能。

关键词:Java, MyEclipse, 通讯, 局域网,聊天AbstractWith the development of the Internet, people rely on network more and more, more and more inseparable from the network, the resulting chat tools, more and more. This experiment will be in accordance with the design of tencent chat tool QQ, realize the basic function of the LAN network communication, so that the users in the case of not connected to the Internet can also communicate.This article written by the "your LAN chat software college" is to solve in order to solve the general teachers college students surfing the Internet is difficult, net charge overdraft, network speed is slow and difficult. The software mainly includes: the server response, login system, registration, friend interface, chat interface, etc. In the curriculum design, we applied the MyEclipse 6.0 development tools in WINDOWS platform based on WINDOWS platform to develop a local area network (LAN) communication tools, we fully learned JAVA Swing and awt interface development technology, make oneself in the aspect of application interface and interface layout to get more practice, Socket technology is applied to implement the network connection, for the realization of the network and communications have a further understanding ofmulti-threaded applications, making the client and the server can implement multitasking capabilities.Keywords : Java, MyEclipse, communication, Local area network, chat1 引言随着Internet的发展,Internet将提供越来越多的服务。

基于TCP的局域网视频聊天程序课程设计

基于TCP的局域网视频聊天程序课程设计

《网络程序设计》课程设计报告题目:专业:学号:姓名:完成日期:成绩:基于TCP的局域网视频聊天程序计算机科学与技术(师范类)0815012陈敏2011-6-12一、 题目及要求 1. 基本要求本课程设计的基本要求是在校园网范围内能进行视频聊天,文字聊天,文件传输。

2. 功能详细描述视频聊天:在局域网范围内通过TCP 协议实现客户端与客户端之间视频的传输,客户端能够看到服务端的视频,服务端也能够看到客户端的视频。

文字聊天:客户端和服务端之间在进行视频的同时也能够进行简单的文字聊天。

文件传输:客户端和服务端之间可以在建立连接之后在任意时间进行文件传输。

在文件传输的同时可以进行文字聊天和视频传输的功能。

3. 可能出现的难点系统开发的重难点在于视频画面的捕捉并传输、文件的传输,因此系统的重难点是视频的传输和文件的传输。

二、 系统概要设计系统开发用到了三大基本技术,分别为文字聊天、文件传输技术和视频处理技术,由于整个过程是基于TCP 协议,首先介绍TCP 协议的建立过程,如图2-11.文字聊天的基本原理系统分为客户端和服务端,严格上说客户端在某些时刻也作为服务端使用,服务端在某些时刻也作为服务端使用。

服务端首先启动开始监听消息传输时使用的端口,当客图2-1户端启动时,主动连接服务端。

连接完成之后客户端与服务端建立套接字连接,在此之后两者之间便可以对等的进行文字聊天。

原理图如下所示:2.文件传输技术文件传输中使用了文件流和TCP套接字来传输,主要过程如下:①客户端和服务端建立连接建立的过程和文字聊天建立的连接过程是相同的。

②发送端向接收端发送要接受文件的文件名③发送端从文件中读取到缓冲区并发送给客户端客户端和服务端的用于发送和接受的缓冲区的大小是相同的,为了实现两个的大小相同可在输出文件之前由发送方告诉接受方本次输出所用的缓冲区的大小。

每次发送之前应将剩余文件的大小与缓冲区的大小做比较,当剩余文件的大小小于缓冲区的大小时,调整缓冲区的大小同剩余文件相同,将剩余的文件发送到接收端。

局域网聊天java课程设计

局域网聊天java课程设计

局域网聊天java课程设计一、课程目标知识目标:1. 让学生理解局域网的基本概念,掌握Java语言在局域网环境下的网络编程技术;2. 学会使用Java语言实现局域网内聊天功能,了解TCP/IP协议在网络编程中的应用;3. 掌握Java多线程编程技术,实现局域网聊天程序中的并发通信。

技能目标:1. 培养学生运用所学知识解决实际问题的能力,能够独立完成局域网聊天程序的编写;2. 提高学生的编程实践能力,熟练使用Java语言进行网络编程;3. 培养学生的团队协作能力,分组合作完成课程设计。

情感态度价值观目标:1. 激发学生对计算机网络编程的兴趣,培养积极探究的学习态度;2. 培养学生遵守网络道德规范,养成良好的网络行为习惯;3. 增强学生的网络安全意识,提高自我保护能力。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握计算机网络基本原理的基础上,运用Java语言实现局域网聊天功能。

通过课程学习,学生能够具备实际编程能力,解决实际问题,并养成良好的网络素养。

同时,课程目标具体、可衡量,有助于后续教学设计和评估的实施。

二、教学内容1. 局域网基础理论:包括局域网的概念、拓扑结构、IP地址分配及子网划分等,重点讲解局域网内通信原理。

教材章节:第一章 计算机网络基础2. Java网络编程:介绍Java网络编程的基本概念,如Socket编程、TCP/IP 协议在Java中的应用等。

教材章节:第三章 Java网络编程3. 多线程编程:讲解Java多线程编程基础,实现局域网聊天程序中的并发通信。

教材章节:第五章 多线程编程4. 局域网聊天程序设计:分析聊天程序的需求,设计程序架构,编写代码实现聊天功能。

教材章节:第六章 局域网聊天程序设计5. 实践环节:分组进行编程实践,每组完成一个局域网聊天程序,并进行调试与优化。

教材章节:实践篇教学内容安排和进度如下:1. 第1周:局域网基础理论,完成理论学习和实践任务;2. 第2周:Java网络编程,掌握Socket编程及TCP/IP协议;3. 第3周:多线程编程,学习并实践Java多线程技术;4. 第4周:局域网聊天程序设计,分析需求,设计程序架构;5. 第5周:编写代码,实现局域网聊天功能;6. 第6周:调试与优化程序,分组展示成果。

局域网聊天系统

局域网聊天系统

面向对象课程设计报告——局域网点对点聊天系统班级:1120学号:姓名:目录一、课程设计题目___________________________________________________ 3二、需求分析________________________________________________________ 3三、概要设计________________________________________________________ 33.1程序时序图与系统架构 ____________________________________________________________33.2程序描述__________________________________________________________________________6四、详细设计________________________________________________________ 74.1核心代码-IMessageSender: ________________________________________________________74.2核心代码-MessageReceiver ________________________________________________________8五、程序使用说明、测试分析及结果___________________________________ 9六、课程设计总结__________________________________________________ 11七、参考文献_______________________________________________________ 12一、课程设计题目局域网点对点聊天系统二、需求分析主要实现局域网的无服务器的点对点信息传递,并且实现登陆,注册,注销,关闭功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

局域网聊天程序课程设计目录第1章需求分析 (4)第2章系统设计方案 (4)第3章性能测试 (5)3.1课程设计成果 (5)第4章结论 (12)第1章需求分析该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。

客户端程序:包括登陆界面和聊天界面,可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。

服务器端程序:负责发送用户列表和转发客户端发送来的信息功能如下:连接:登陆界面输入完整之后将用户的信息发送到服务器端,服务器端创建相应的连接,并将更新后的用户列表发送给所有用户。

刷新列表:使客户端发送一段指令到服务器端,然后由服务器端广播新的用户列表到所有的客户端。

发送:根据发送者、发送对象、发送的话创建一个字段发送到服务器端。

接收:根据从服务器端接收到的信息判断发送者、接受者、以及要听的话,选择显示在公共聊天区还是私人聊天区。

颜色:设置字体颜色。

字体:设置字体,在楷体和宋体之间切换。

主题:设置背景图片。

快捷键:设置是否开启shift+enter发送快捷键。

第2章系统设计方案本程序根据功能设置了两个界面:登陆界面以及聊天界面。

服务器端后台运行监听,没有设置界面。

用例图如下:本程序可以有多个用户,只需在一台服务器上运行服务端程序,所有的用户连接上了之后就可以正常通信。

本程序共有四个类,在三个源程序里。

In和out是客户端和服务器端通信的关键。

把发送功能写在了发送按钮的事件响应代码中;由于接收是要保持监听状态的,所以把接收功能写在了一个进程中。

快捷键即键盘监听功能写在输入文本框中以实现输入完信息后按shift+enter就能等同点击了发送按钮。

改变颜色功能通过调用系统的showDialog。

第3章性能测试3.1课程设计成果(1).主要代码:登陆界面连接服务器:public void link() throws Exception{ //连接服务器核心代码hostName = jTextField2.getText().trim(); //主机地址port = Integer.parseInt(jTextField3.getText()); //端口号,默认是4331,参考教科书client = new Socket(hostName,port); //主机地址和端口号组成套接字in=new InputStreamReader(client.getInputStream())); //从服务器接收到的参考,不是很懂out = new PrintWriter(client.getOutputStream()); //发送出去的out.println(jTextField1.getText()+"&"+sex); //类似这种格式 123&Boyout.flush(); //刷新.输出缓冲区}聊天界面发送信息:public void enter(){String mywords,outmsg;String withWho = (String)jComboBox1.getSelectedItem(); //获取是和谁说话try{mywords = jTextArea4.getText(); //我说的话if ((mywords.trim()).length() != 0){ //不能发送空消息也不能都发空格outmsg = "withWho&"+name+"&"+withWho+"&"+mywords;//类似withWho&tom&helloout.println(outmsg);out.flush();if (withWho.equals("所有人")){jTextArea2.append(name+"说:"+mywords+"\n");}else { //对某个人交谈jTextArea2.append(name+" 对"+withWho+"说: "+mywords+"\n");}}}catch (Exception ee){System.out.println(ee);jTextArea2.append("与服务器连接中断,请重新登陆!\n");} finally{jTextArea4.setText("");}}聊天界面接收信息代码:public void run() {String inmsg;while (true){ //循环try{inmsg = in.readLine(); //从流中输入System.out.println("inmsg "+inmsg);jList1.setModel(model1); //model和jList参考网上String[] userInfo = inmsg.split("&");if (inmsg.startsWith("new")){ //新人jTextArea1.append("欢迎 "+userInfo[1]+"\n");model1.addElement(userInfo[1]+"〖"+userInfo[2]+"〗");}else if( inmsg.startsWith("old")) {model1.addElement(userInfo[1]+" 〖"+userInfo[2]+"〗"); //更新用户列表 }//一般消息if (inmsg.startsWith("withWho")){String showmsg[] = inmsg.split("&");System.out.println("接收者的名字:"+showmsg[2]+"我的名字"+name+";\n");if (showmsg[2].equals(name)){ //如果是发给自己的消息jTextArea2.append(showmsg[1]+"说: "+showmsg[3]+"\n"); //显示到我的频道} else{jTextArea1.append(showmsg[1]+"说:"+showmsg[3]+"\n") }}}catch (Exception ee){System.out.println("Error at run()"+ee);jTextArea2.append("与服务器连接中断,请重新登陆!\n");// 输出流,输入流设置为 nullin = null;out = null;return;}}}服务器发送给所有人代码:public static void sendAll(String s){if (connections != null){Enumeration e = connections.elements();while(e.hasMoreElements()) {try {PrintWriter pw = new PrintWriter( ( (Socket) e.nextElement() ).getOutputStream() );pw.println(s);pw.flush();} catch (IOException ex){}}}System.out.println(s);}服务器发送给指定人代码:public static boolean sendOne(String name,String msg){if (clients != null){Enumeration e = clients.elements();while(e.hasMoreElements() ) {ClientProc cp = (ClientProc)e.nextElement(); //枚举所有连接中的用户if ((cp.getName()).equals(name)){try{PrintWriter pw = new PrintWriter((cp.getSocket()).getOutputStream());pw.println(msg);pw.flush();return true; //找了返回且返回值为真}catch (IOException ioe){}}}}return false;//没有找到}服务器发送更新用户信息代码:private void updateList() {// 更新用户列表Vector cs = ChatServer.getClients();if (cs != null){for (Enumeration e = cs.elements();e.hasMoreElements() ;) {ClientProc cp = (ClientProc)e.nextElement();String exist_name = cp.getName();String exit_sex = cp.getSex();out.println("old"+"&"+exist_name+"&"+exit_sex); //在这里标记以便判断out.flush();}}}服务器处理接收到的信息:public void run(){while (name == null){try{String inmsg;inmsg = in.readLine(); // 1111&BoyChatServer.sendAll("new"+"&"+inmsg);//发送信息更新用户列表 new&1111&BoyString []userInfo;userInfo = inmsg.split("&");name = userInfo[0];sex = userInfo[1];//out.println("欢迎 "+name); //初次登陆//out.flush();}catch (IOException ee){}}while (true){try { //通过客户端发送代码到服务器来执行相应的功能,in.readLine()监视String line = in.readLine();String[] inmsg = line.split("&");if (line.equals("quit")){ //处理退出事件ChatServer.sendAll("withWho&"+"【系统消息】& "+"所有人&"++" 退出了聊天室");ChatServer.deleteConnection(s,this);return;}else if (line.equals("refurbish")){ //处理刷新用户列表请求this.updateList();}else if (line.startsWith("withWho")){if(inmsg[2].equals("所有人"))ChatServer.sendAll(line);else{if (ChatServer.sendOne(inmsg[2],line)) {//out.println(line);//out.flush();}else{out.println("withWho&"+"【系统消息】& "+inmsg[1]+"&"+inmsg[2]+"已经退出了聊天室");out.flush(); //}}}elseChatServer.sendAll(line); //发给所有的人}catch (IOException e){System.out.println("事件 "+e);try {s.close();}catch (IOException e2){}return;}}}(2).用户使用说明:在昵称里输入想要使用的名字,在主机地址写入运行服务器端程序的电脑的ip地址,默认为localhost,代表本机,在端口号中输入和服务器端程序约定好的端口号,默认为4331,如果不一致会导致运行失败,最后选择性别后点击“连接”按钮连接服务器,弹出聊天界面。

相关文档
最新文档