基于Socket技术的企业局域网通信软件设计与实现毕业设计

合集下载

宋奇基于Winsocket局域网通讯软件的设计与实现

宋奇基于Winsocket局域网通讯软件的设计与实现

宋奇基于Winsocket局域网通讯软件的设计与实现————————————————————————————————作者:————————————————————————————————日期:辽东学院本科毕业论文(设计)基于Winsocket局域网通讯软件的设计与实现The Design and Implementation for LAN Communication SoftwareBased on WinSocket学生姓名:宋奇学院:信息技术学院专业:网络工程班级:B0904学号:0913090423指导教师: 厉鹏审阅教师:完成日期:2013.5.23辽东学院Eastern Liaoning University独创性说明作者郑重声明:本毕业论文(设计)是我个人在指导教师指导下进行的研究工作及取得研究成果。

尽我所知,除了文中特别加以标注和致谢的地方外,毕业论文(设计)中不包含其他人已经发表或撰写的研究成果,也不包含为获得辽东学院或其他单位的学位或证书所使用过的材料.与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。

作者签名:___________ 日期:__ __摘要随着网络技术的不断发展,网络通讯在如今已经不算新鲜事物,但是大多数网络通讯都需要借助Internet来实现,但是Internet技术给那些大规模内部网络的用户带来了一系列问题,比如遭遇到网络恶意攻击、网络病毒的传播、破坏防御系统等等。

因为互联网上的通讯工具给企业内部以及学校局域网信息交流带来了不便比较多,所以为了方便局域网内的用户之间的交流,需要开发一个基于局域网的通讯通讯,实现在内部网络中进行信息的交流。

本课题设计主要针对局域网通讯而开发设计的,采用的是C/S构架,利用Delphi编程工具来实现单播、广播以及在线用户显示和查看历史记录的功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。

基于SOCKET技术的网络即时通讯软件的设计与实现

基于SOCKET技术的网络即时通讯软件的设计与实现

目录摘要 (1)1 前言 (1)2 可行性研究 (2)2.1开发背景 (2)2.2技术可行性分析 (2)2.3面临问题及现状 (2)2.4开发目的及意义 (3)2.5.1运行环境 (3)2.5.2性能要求 (3)3 需求分析 (3)3.1系统总体功能 (3)3.2开发工具以及使用的主要技术简介 (4)3.2.1数据库Microsoft SQL2000简介 (5)3.2.2 eclipse简介 (6)3.3客户机/服务期(C/S)工作原理 (7)3.4套接字(SOCKET)原理图 (8)3.5系统逻辑模式 (8)3 概要设计 (9)3.1客户端 (10)3.1.1 用户注册功能模块 (10)3.1.2发送消息功能模块 (11)3.1.3查找好友功能模块 (11)3.1.4 添加好友模块 (11)3.1.5删除好友模块 (12)3.1.6修改个人信息模块 (12)3.2服务器 (12)3.2.1用户登录模块设计 (13)3.2.2新用户注册模块设计 (14)3.2.3查找网友模块设计 (15)3.2.4添加好友模块设计 (16)3.2.5 用户之间发送数据模块设计 (17)3.3数据库设计 (18)3.3.1数据库结构设计 (19)3.3.2数据表设计 (19)3.3.3 数据字典 (21)(1) 聊天信息字典 (21)4 详细设计 (22)4.1服务器端 (22)4.1.1服务器建立和启动模块 (22)4.1.2 数据库交互模块 (23)4.1.3 处理客户端请求模块 (25)4.1.4 异常处理模块 (25)4.2客户端 (25)4.2.1 客户端与服务器建立连接模块 (25)4.2.2 用户登陆模块 (26)4.2.3 注册模块 (26)4.2.4 通讯模块 (27)4.2.5 聊天模块 (28)4.2.6 查找好友模块 (29)4.2.7个人信息模块 (30)5 总结 (32)参考文献 (33)致谢........................................... 错误!未定义书签。

基于socket简易聊天程序毕业设计(论文)

基于socket简易聊天程序毕业设计(论文)

简单的socket程序虽然很简单,但还是调试了很长时间。

本科时候接触过socket——那个帅帅的刘老师的课,现在重新再捡起来。

程序中专门建立一个FunThread线程用来接收数据,实现双向通信,也可以连续发送、连续接收。

代码贴上来,如果还能保留VA View那样的颜色区别就好看了,但是试了好几遍都不行server:#include <WINSOCK2.H>#include <stdio.h>#define PORT 6000 //服务器端口#define MSGSIZE 1024 //收发缓冲区的大小#pragma comment(lib, "ws2_32.lib") //链接静态库DWORD WINAPI FunThread(LPVOID); //创建一个线程,专门用来接收数据SOCKET sClient; //连接所用套节字SOCKET sListen; //监听套接字SOCKADDR_IN client; //保存客户的地址信息int iaddrSize = sizeof(SOCKADDR_IN);int main(){WSADATA wsaData;SOCKADDR_IN local;char s_Message[MSGSIZE]; //收发缓冲区WSAStartup(0x0202, &wsaData); //Initialize Windows socket librarysListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//创建服务器监听套节字。

TCP协议local.sin_family = AF_INET; //AF_INET指明使用TCP/IP协议族local.sin_port = htons(PORT);//指明连接服务器的端口号local.sin_addr.s_addr = htonl(INADDR_ANY);//自动获取本机地址bind(sListen, (struct sockaddr *)&local, sizeof(SOCKADDR_IN));//地址绑定到套接字listen(sListen, 1);//开始监听sClient = accept(sListen, (struct sockaddr *)&client, &iaddrSize);//建立连接printf("Accepte client:%s:%d\n", inet_ntoa(client.sin_addr),ntohs(client.sin_port));HANDLE hThread=CreateThread(NULL,0,FunThread,0,0,0);//创建接收线程CloseHandle(hThread);while (TRUE){printf("Server Send:");//从键盘输入gets(s_Message);//发送数据send(sClient, s_Message, strlen(s_Message), 0);}return 0;}DWORD WINAPI FunThread(LPVOID){char c_Message[MSGSIZE]; //收发缓冲区int ret; //接收字节的个数while (TRUE){ret = recv(sClient, c_Message, MSGSIZE, 0);//接收数据if(ret==SOCKET_ERROR){printf("\nclient is closed!");sClient = accept(sListen, (struct sockaddr *)&client,&iaddrSize);//重新开始监听printf("\nAccepte new client:%s:%d",inet_ntoa(client.sin_addr), ntohs(client.sin_port));memset(c_Message,0,1024);//将原来的client message归零continue;}c_Message[ret] = '\0';printf("\nReceived: %s\n", c_Message);}return 0;}client:#include <WINSOCK2.H>#include <stdio.h>#define SERVER_ADDRESS "127.0.0.1" //服务器端IP地址#define PORT 6000#define MSGSIZE 1024#pragma comment(lib, "ws2_32.lib")DWORD WINAPI FunThread(LPVOID);SOCKET sClient;SOCKADDR_IN server;int main(){WSADATA wsaData;char c_Message[MSGSIZE];WSAStartup(0x0202, &wsaData);sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);memset(&server, 0,sizeof(SOCKADDR_IN)); //先将保存地址的server置为全0server.sin_family =PF_INET; //声明地址格式是TCP/IP地址格式server.sin_port =htons(PORT); //指明连接服务器的端口号server.sin_addr.s_addr = inet_addr(SERVER_ADDRESS); //指明连接服务器的IP地址connect(sClient, (struct sockaddr *)&server, sizeof(SOCKADDR_IN)); //连到刚才指明的服务器上HANDLE hThread=CreateThread(NULL,0,FunThread,0,0,0);CloseHandle(hThread);while (TRUE){printf("Client Send:");gets(c_Message);send(sClient, c_Message, strlen(c_Message), 0);if(!strcmp(c_Message,"exit"))//client自身退出exit(1);}// 释放连接和进行结束工作closesocket(sClient);WSACleanup();return 0;}DWORD WINAPI FunThread(LPVOID){char s_Message[MSGSIZE];int ret;while (TRUE){ret = recv(sClient, s_Message, MSGSIZE, 0);if(ret==SOCKET_ERROR){printf("\nServer is closed!\n");exit(1);}s_Message[ret] = '\0';printf("\nReceived: %s\n", s_Message);if(!strcmp(s_Message,"exit"))//server让client退出exit(1);}return 0;}程序在VC++ 6.0环境下编译通过。

“基于Socket的网络聊天系统的设计与实现”课程设计报告

“基于Socket的网络聊天系统的设计与实现”课程设计报告

《计算机网络课程设计报告》学院:计算机科学学院专业:计算机科学与技术班级:08级01班姓名:学号:小组成员:ABCDEF2011-7-13项目内容:基于Socket的网络聊天系统的设计与实现实验目的:基于Socket套接口,实现网络聊天系统的设计与实现,让我们掌握Socket的编程技术及网络服务的技术,让同学们更加深刻的了解,并掌握这方面的知识。

实验环境:操作系统:windows2000或windows2003;内存:256M以上;基于eclipse的JAVA运行环境。

设计方案:首先,我们知道此应用软件需实现网络中多台主机的信息互通,实现语言文字得互聊,因此涉及到主机网络互联的问题,所以必须会应用到网络协议,可以用UDP或TCP。

其次,既然要求设计基于Socket的网络聊天系统,那就必须对Socket有一个充分的了解。

最后,不管运用何种语言设计此程序,都要求对该语言有一个透彻的了解,并能运用自如。

实现流程:启动电脑,打开能运行该程序的环境,必须保证代码的正确性;进行窗体框架的设计,实现网络连接,并达到网络聊天的功能;在以上步骤的成功进行下达到设计要求的基于S o c k e t s的局域网内聊天系统的函数实现的目的。

结果及分析:程序运行以后,经过局域网内测试,实现了在局域网内的好友添加,聊天等功能,基本上完成了本实验的全部要求。

但由于时间仓促,再加上本人水平有限,对这方面的知识还有所欠缺,经过这次课程设计,对此有了一个很大的提高。

源程序;一 Client端程序代码package wangluo;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataInputStream;import java.io.DataOutputStream;import javax.swing.JFrame;import javax.swing.JTextField;public class Client implements ActionListener {private JTextField jtf = new JTextField("", 20);JFrame jf = new JFrame("不用注册直接登陆");public Client() {jf.setLayout(new BorderLayout());jf.add(jtf, BorderLayout.NORTH);jtf.addActionListener(this);jf.pack();jf.setLocation(500, 300);jf.setResizable(false);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {jf.dispose();new ThreadClient(jtf.getText());}public static void main(String[] args) {new Client();}}二ThreadClient端程序代码:package wangluo;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java.io.DataOutputStream;import .Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class ThreadClient extends Thread implements ActionListener { private String name = "";private int a;private JTextField jtf = new JTextField("", 25);private JTextArea jta = new JTextArea(30, 40);private DataOutputStream dos;private DataInputStream dis;private Socket s;public ThreadClient(String temp) {=temp;JFrame jf = new JFrame("聊天界面");jf.setLayout(new BorderLayout());JButton jb = new JButton("发送");JPanel jp = new JPanel();jta.setLayout(new GridLayout(1, 2));jp.add(jtf);jp.add(jb);jf.add(jp, BorderLayout.NORTH);jf.add(jta);jb.addActionListener(this);jtf.addActionListener(this);jf.pack();jf.setLocation(450, 200);jf.setVisible(true);jf.setSize(400, 350);try {s = new Socket("127.0.0.1", 1024);dos = new DataOutputStream(s.getOutputStream());dis=new DataInputStream(s.getInputStream());dos.writeUTF("<1.1>");dos.writeUTF(name);System.out.println("heh");} catch (Exception e) {e.printStackTrace();}jf.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {try {dos.writeUTF("<1.4>");Thread.sleep(2000);dis.close();dos.close();s.close();} catch (Exception e1) {e1.printStackTrace();}System.exit(1);}});this.start();}@Overridepublic void run() {while(true){try {Thread.sleep(3000);dos.writeUTF("<1.3>");jta.setText(dis.readUTF());} catch (Exception e) {break;}}}@Overridepublic void actionPerformed(ActionEvent ae) { String comn=jtf.getText();if(!"".equals(comn)){try {dos.writeUTF("<1.2>");dos.writeUTF(comn);jtf.setText("");jtf.requestFocus();} catch (Exception e) {e.printStackTrace();}}}}三ThreadServer端程序代码:package wangluo;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import .ServerSocket;import .Socket;public class ThreadServer extends Thread {//private StringBuffer message = new StringBuffer();private static String message="";private Socket s;private String name="";public ThreadServer(Socket s) {this.s = s;}public void run() {try {DataOutputStreamdos=new DataOutputStream(s.getOutputStream());DataInputStream dis=new DataInputStream(s.getInputStream());while (true) {String temp=dis.readUTF();if("<1.1>".equals(temp)){name=dis.readUTF();message="欢迎"+name+"进入!"+"\n"+message;}else if("<1.2>".equals(temp)){message=name+"说:"+dis.readUTF()+"\n"+message;}else if("<1.3>".equals(temp)){dos.writeUTF(message);}else if("<1.4>".equals(temp)){message=name+"离开"+"\n"+message;break;}}dos.close();dis.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(1024);while (true) {Socket s = ss.accept();new ThreadServer(s).start();}}}安装演示说明详细步骤:首先将自己所在电脑作为服务器端,在JAVA环境下运行该程序,出现以下页面:再在光标所示位置输入用户名称,或直接按回车键进入聊天界面:再将其他主机作为客户端,与服务器所在的主机进行连接,成功后界面如下:在输入框中输入要发送的信息,点击发送如上所示,本实验演示完毕。

基于socket通信系统设计

基于socket通信系统设计

基于Socket通信系统设计实验报告一、实验目的和要求1、掌握VC++集成开发环境编写网络程序的方法;2、掌握客户/服务器(C/S)应用的工作方式;3、学习网络中进程之间通信的原理和实现方法;二、实验内容所编写的程序应具有如下功能:1. 具有点对点通信功能,服务器向客户端发送消息,客户端接收服务器发送的消息并显示;2、具有广播功能,服务器能够向连接到服务器的所有客户端广播消息;三、编程语言和环境1. 编程语言C/C++;2. 编程环境Windows Visual Studio 2010。

四、Socket通信的实现Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口,利用Sockets套接字能够实现不同主机间的网络通信。

Socket实际是在计算机中建立一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。

目前常用的套接字类型是基于TCP/IP协议的流式套接字,其特点是提供一种可靠的、面向连接的数据传输服务。

本实验采用基于TCP/IP协议的流式套接字实现发送方与接收方之间的安全通信。

其程序实现流程如下图所示:服务器端客户端1.服务器端首先调用socket函数来建立一个套接字;套接字创建成功后,调用bind函数将一个IP地址和端口号绑定到己经建立的socket上;绑定完成之后,服务器等待接收客户端的连接请求,调用listen函数实现监听的功能;监听到连接请求之后,服务器调用accept函数生成一个新的套接口描述符,以接受客户的连接请求,之后调用send/receive 函数在套接字上进行数据的读/写,直至完成交换;通信结束之后,调用close函数关闭套接字。

服务器socket通信程序://创建socket套接字连接if(m_hSocket != NULL){closesocket(m_hSocket);m_hSocket = NULL; }if(m_hSocket == NULL){m_hSocket = socket(AF_INET, SOCK_STREAM,0);ASSERT(m_hSocket != NULL); }m_addr.sin_family = AF_INET;m_addr.sin_addr.S_un.S_addr = INADDR_ANY;m_addr.sin_port = htons(m_nPort);int ret = 0,error = 0;ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));if(ret == SOCKET_ERROR){TRACE("Bind Error: %d \n", (error = WSAGetLastError()));return ; }ret = listen(m_hSocket, 2);if(ret == SOCKET_ERROR){TRACE("Listen Error: %d \n", (error = WSAGetLastError()));return ; }SOCKET s = accept(m_hSocket, NULL, NULL);if(s == SOCKET_ERROR){TRACE("Accept Error: %d \n", (error = WSAGetLastError()));return ; }//监听接收到信息char buff[256];ret = recv(s, buff, 256, 0);if(ret == 0 || ret == SOCKET_ERROR ){TRACE("Recv data error: %d\n", WSAGetLastError());return ; }char* name = NULL;char* pass = NULL;int len = 0;len = buff[0];name = new char[len + 1];for(int i = 0; i < len; i++)name[i] = buff[i+1];int len2 = buff[len + 1];pass = new char[len2 + 1];for(int i = 0; i < len2; i++)pass[i] = buff[i + 2 + len];//发送消息代码CString str;if(strcmp(name, "ware") != 0){str = _T("用户名不正确!");TRACE(_T("用户名不正确!\n")); }else{if(strcmp(pass, "11111") != 0){str = _T("用户密码不正确!");TRACE(_T("用户密码不正确!\n")); } }if(str.IsEmpty()){ str =_T("我是马琰");str +=SendMsg; }char* buf = str.GetBuffer(0);ret = send(s, buf, str.GetLength(), 0);if(ret != str.GetLength()){TRACE("Send data error: %d\n", WSAGetLastError());return ; }2.客户端首先调用socket函数来建立一个套接字;成功创建套接字之后,再调用bind函数,将一个端口绑定到已经建立的socket上;之后客户端便可调用connect函数向服务器请求连接;通信连接建立之后,客户端则可通过调用send/receive函数完成数据交换;通信结束之后,关闭套接字。

基于socket的即时通讯软毕业设计(论文) 推荐

基于socket的即时通讯软毕业设计(论文) 推荐

长沙学院CHANGSHA UNIVERSITY毕业设计(论文)资料目录第一部分毕业论文一、毕业论文第二部分外文资料翻译一、外文资料原文二、外文资料翻译第三部分过程管理资料一、毕业设计(论文)课题任务书二、本科毕业设计(论文)开题报告三、本科毕业设计(论文)中期报告四、毕业设计(论文)指导教师评阅表五、毕业设计(论文)评阅教师评阅表六、毕业设计(论文)答辩评审表2009届本科生毕业设计(论文)资料第一部分毕业论文(2009届)本科生毕业论文基于socket的即时通讯软件2009年 6 月长沙学院本科生毕业论文基于socket的即时通讯软件系(部):电子与通信工程专业:通信工程学号: 2005043201学生姓名:闫成超指导教师:张明高级工程师2009 年6 月摘要近些年来,随着计算机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、更实用的网络通信软件。

现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。

过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。

即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。

由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。

现如今,很多的企业、机关、学校都纷纷建立起自己的局域网。

于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局域网里联络,消息的发布等。

在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上Internet,可以节省资源。

在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。

毕业论文局域网聊天软件的设计与实现原理

毕业论文局域网聊天软件的设计与实现原理

摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。

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

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

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

系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。

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

服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。

大大增强了程序对服务器资源的利用。

聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

关键字:多线程;客户机/服务器;JAVA ; Socket ; Eclipse ; TCP/IPAbstractas the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system.In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database.The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources.Chat system will allow people to complete chat to more friends,and the system can add, delete somebody,can deal with new user registration, send messages, receive messages and so on.Keywords : Multithreading ;Client/Server ;JAVA ;Socket ;Eclipse ;TCP/IP目录1 绪论 (5)1.1国内外聊天系统的研究现状 (5)1.2J AVA语言 (6)1.2.1 Java的发展历史 (6)1.2.2 Java的特点 (7)1.2.3 Java与Internet (7)1.3S OCKET编程 (8)1.3.1 关于TCP/IP协议 (8)1.3.2 服务器和客户机 (9)1.4本文内容安排 (9)2 需求分析 (10)2.1可行性研究 (10)2.1.1 可行性分析 (10)2.1.2系统功能需求 (10)2.1.3 系统性能需求 (11)2.1.4 系统运行需求 (11)2.2数据流图 (11)2.2.1 顶层数据流图 (11)2.2.2 一层数据流图 (12)2.2.3 二层数据流图 (13)3 概要设计 (14)3.1系统实现原理 (14)3.2系统实现层次图: (15)3.3各模块详细功能 (15)3.3.1服务器端结构 (15)3.3.2 客户端结构 (16)4 详细设计 (17)4.1系统流程图 (17)4.1.1 系统总体流程图 (17)4.1.2 系统客户端流程图 (18)4.2编写服务器端程序 (18)4.2.1 问题陈述 (18)4.2.2 解决方案 (19)4.3客户端程序编写 (23)4.3.1 (23)4.3.2 用户登录 (23)4.3.3 聊天室 (24)参考文献 (30)致谢 (31)1 绪论1.1国内外聊天系统的研究现状目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。

基于Socket的局域网通信工具的设计与实现的方法

基于Socket的局域网通信工具的设计与实现的方法

摘要摘要随着计算机科学和Internet的飞速发展,网上聊天已成为人们相互交流的一中方式,与E-mail、电话相比,聊天服务更具有实时性和有效性。

网络版的聊天软件种类繁多,如QQ、OICQ、MSN等,实现随时随地上网聊天,给人们带来了很大的方便。

但是这些聊天软件也存在以下不足:用户必须连接Internet;用户在工作时容易沉迷于网络聊天。

为了方便单位企业内部的信息交流,避免企业内部员工使用类似QQ等软件泄露内部信息,减少不必要的财力和人力资源浪费,开发一个局域网聊天软件是非常必要的。

通过对局域网络通信的学习研究,本文介绍了局域网通信和实现聊天器基本通信功能的流程,并编写了一个基于Winsock的局域网络聊天器系统。

本系统是运行于MFC 平台上的Winsock局域网聊天软件,该聊天软件采用C/S结构,包括服务器和客户端两个模块,客户端通过服务端进行通信。

服务器模块主要实现了服务器的配置和数据的传递;客户端模块主要实现了用户注册、登录、文字聊天和文件传送等功能。

该软件采用多线程技术支持多用户操作,并采用相关技术进行了优化,加快了文字传递速度。

主要用到了Winsock编程技术、TCP/IP协议、多线程技术、数据库存取技术和各种控件编程技术。

本文主要分为六个章节,第一章概括的说明聊天器的背景及应用。

第二章阐述实现局域网络聊天器系统所用到的主要技术。

第三章根据聊天器的设计实现进行需求分析。

第四章详细描述了本系统各个模块的设计。

第五章重点介绍各个模块的实现和测试。

第六章是结束语,总结毕业设计中遇到的问题和自己的收获,感谢给予指导和帮组的老师和同学。

关键词:局域网;TCP/IP协议;Winsock;多线程AbstractWith the computer science and the rapid development of Internet, online chat has become a way of mutual exchange of one, and E-mail, phone calls with real-time chat services and more effective. Online chat software, a wide variety, such as QQ, OICQ, MSN and so on, to achieve anytime, anywhere access to chat, to bring a great convenience. But the lack of chat software, there are the following: the user must be connected to Internet; users to work easily addicted to online chat. To facilitate the exchange of information within business units to avoid the use of internal staff and other software like QQ leaked internal information to reduce unnecessary waste of financial and human resources to develop a LAN chat software is very necessary.Through the study of local area network communication, this article describes the communication and implementation of local area network chat basic communication process device, and write a Winsock-based local area network chat control system. The system is running on the platform at the MFC Winsock LAN chat software, chat software with the C / S structure, including both server and client modules, the client side to communicate through the service. Server module main achievement of the server's configuration and data transfer; client module main achievement of the user registration, login, text chat and other functions. The software supports multi-threading multi-user operation, and optimized use of relevant technologies, accelerate the transmission speed of text. Mainly used the Winsock programming, TCP / IP protocol, multi-threading, database access technology, and various control programming.This paper is divided into six chapters, the first chapter general description of the background of chat devices and applications. The second chapter to achieve local area network chat system used in the main control technology. Chapter III device under the design and implementation needs analysis chat. The fourth chapter describes in detail the design of the various modules of the system. Chapter V focuses on the implementation andtesting of each module. Chapter VI is the Conclusion, summarizes the problems encountered in the design school and their own harvest for guidance and help teachers and students groups.Key words: LAN;TCP / IP protocol;Winsock;multi-threaded目录摘要 (I)Abstract (II)1绪论 (1)1.1背景知识 (1)1.2国内外聊天器系统研究现状 (1)1.3选题的目的及意义 (3)1.4本课题研究内容 (3)1.5本章小结 (4)2 实现原理及开发环境 (5)2.1M ICROSOFT O FFICE A CCESS (5)2.2套接字(S OCKET) (6)2.2.1 Windows Socket介绍(Winsock) (8)2.2.2 Socket的同步和异步方式 (9)2.2.3 用Socket 开发一个Server-Client模型的程序 (10)2.3多线程技术 (11)2.4TCP/IP协议、UDP协议 (12)2.4.1 面向连接的TCP (13)2.4.2 面向非连接的UDP协议 (14)2.5C LIENT/S ERVER结构(客户机/服务器模式) (15)2.6编程环境 (17)2.6.1 硬件环境 (17)2.6.2 软件环境 (17)2.6.3 开发工具介绍 (17)2.7本章小结 (18)3 需求分析 (19)3.1需求分析 (20)3.1.1 可行性分析 (20)3.2.2 系统性能需求 (20)3.1.3 系统运行需求 (21)3.2数据流图 (21)3.2.2 一层数据流图 (21)3.2.3 二层数据流图 (22)3.3本章小结 (21)4 系统设计 (23)4.1系统实现原理 (23)4.2C/S架构设计 (24)4.3模块设计 (26)4.3.1 系统流程图 (26)4.3.1.1 系统总体流程图 (26)4.3.1.2系统客户端流程图 (27)4.3.2 数据库设计 (27)4.4界面效果 (28)4.5本章小结 (29)5 系统实现及测试 (30)5.1服务端 (30)5.1.1 自动配置数据源 (30)5.1.2 定义服务端的关键结构体 (31)5.1.2.1 用户信息的结构体 (31)5.1.2.2 在线用户结构体 (31)5.1.2.3 Socket信息结构体 (32)5.1.3 启动winsocket2 (32)5.1.4 调用两个WINAPI函数 (33)5.1.4.1 接收 client 连接的WINAPI 函数 (33)5.1.4.2 线程操作处理 WINAPI 函数 (36)5.1.5 模块功能实现(代码略) (39)5.1.6 模块界面 (39)5.2客户端 (40)5.2.1 登录模块 (40)5.2.2 注册模块 (42)5.2.3 文字聊天模块 (44)5.2.3.1 发送消息: (44)5.2.3.2 连接信息服务器 (45)5.2.4 文件传送 (48)5.2.4.1 发送文件 (48)5.2.4.2 接收文件 (50)5.3系统测试 (51)5.3.1 测试环境 (52)5.3.2 测试原则 (52)5.3.3 测试方法及结果 (52)5.4本章小结 (56)结论 (57)致谢 (58)参考文献 (59)1绪论1.1 背景知识近年来,随着全球信息化进程的不断发展,网络也在飞速发展。

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

基于Socket技术的企业局域网通信软件设计与实现毕业设计目录1 绪论 (3)1.1 研究背景 (3)1.2 国外研究现状 (4)1.2.1 国外研究现状 (4)1.2.2 国研究现状 (4)1.3 课题研究容及组织结构 (5)1.3.1 研究容 (5)1.3.2 组织结构 (5)1.4 本章小结 (5)2 系统核心技术 (6)2.1 网络传输协议及Socket技术 (6)2.1.1 网络传输协议 (6)2.1.2 TCP协议 (6)2.1.3 UDP协议 (7)2.1.4 Socket (8)2.1.5 点对点技术 (9)2.2 加密算法 (10)2.2.1 DES算法 (10)2.2.2 MD5算法 (12)2.3 多媒体技术 (13)2.3.1 (13)2.3.2 Microsoft.DirectX SDK (13)2.3.3 音频压缩算法 (14)2.4 .Net技术 (14)2.4.1 多线程 (14)2.4.2 动态库 (15)2.4.3 媒体控制接口 (15)2.4.4 图形设备接口 (15)2.4.5 正则表达式 (16)2.5 三层架构技术 (16)2.6 本章小结 (17)3 系统需求分析 (18)3.1 系统概述 (18)3.2 系统业务分析 (18)3.3 客户端需求 (20)3.3.1 客户端主面板 (20)3.3.2 用户私聊 (20)3.3.3 群组聊天 (21)3.3.4 视频会议 (21)3.4 服务器需求 (21)3.4.1 服务器主界面 (22)3.4.2 员工信息管理 (22)3.4.3 历史聊天记录管理 (22)3.4.4 群共享管理 (22)3.4.5 聊天记录数据图查看 (22)3.5 非功能需求 (22)3.5.1 可靠性 (23)3.5.2 友好性 (23)3.6 本章小结 (23)4 系统设计 (24)4.1 系统整体架构 (24)4.2 客户端 (25)4.2.1 聊天模块 (25)4.2.2 群组聊天模块 (27)4.2.3 视频会议模块 (28)4.3 服务器端 (28)4.3.1 数据快速查看模块 (28)4.3.2 员工信息管理模块 (30)4.3.3 历史聊天记录管理管理模块 (30)4.3.4 群共享管理模块 (31)4.3.5 聊天记录数据图查看模块 (32)4.4 数据库设计 (33)4.5 开发环境 (37)4.6 本章小结 (37)5 系统实现 (38)5.1 用户登录模块实现 (38)5.2 个人聊天模块实现 (40)5.2.1 基本聊天功能 (40)5.2.2 文件传输功能 (42)5.2.3 屏幕截图功能 (43)5.2.4 语音聊天功能 (44)5.2.5 视频对话功能 (46)5.2.6 聊天记录功能 (48)5.2.7 快速回复容 (49)5.3 群组聊天模块实现 (50)5.3.1 群组聊天功能 (50)5.3.2 视频会议功能 (53)5.4 服务器端管理模块实现 (55)5.4.1 员工信息管理 (55)5.4.2 通信数据监控 (60)5.4.3 历史聊天数据管理 (65)5.4.4 群共享数据管理 (71)5.4.5 统计报表中心 (71)5.5 系统测试与评价 (77)5.5.1 测试环境 (77)5.5.2 数据传输测试 (78)5.5.3 模拟场景测试 (79)5.5.4 整体功能测试结果与评价 (80)5.6 本章小结 (81)总结 (82)致谢 (84)参考文献 (85)插图索引图2-1 TCP框架图 (7)图2-2 UDP框架图 (8)图2-3 Socket工作流程图 (9)图2-4 DES算法流程图 (11)图2-5 MD5算法流程图 (12)图2-6三层架构技术结构图 (17)图3-1普通用户操作流程图 (19)图3-2管理员操作流程图 (19)图4-1系统整体架构图 (24)图4-2系统功能结构图 (25)图4-3聊天功能顺序图 (25)图4-4聊天模块功能结构图 (26)图4-5文件传输流程图 (26)图4-6群组聊天功能结构图 (27)图4-7语音视频通信顺序图 (28)图4-8数据快速查看顺序图 (29)图4-9员工信息管理功能结构图 (30)图4-10历史聊天记录管理流程 (31)图4-11群共享管理流程 (32)图4-12聊天记录数据查看流程 (33)图4-13实体数据关系图 (34)图5-1 客户端登录界面 (38)图5-2 客户端主面板界面 (39)图5-3 私聊功能界面 (41)图5-4 文件发送功能界面 (42)图5-5 屏幕截图功能界面 (44)图5-6 视频聊天功能界面 (47)图5-7 历史聊天记录界面(聊天记录导入前) (48)图5-8 历史聊天记录界面(聊天记录导入后) (48)图5-9 快速回复容功能界面 (47)图1-10 群组聊天功能界面 (49)图1-11 群共享功能界面 (50)图5-12 视频会议功能界面 (53)图5-13 视频会议功能界面 (54)图5-14 服务器端管理主界面 (55)图5-15 员工信息管理界面 (56)图5-16 员工信息导出到Excel (56)图5-17 要导入的Excel文档容 (58)图5-18 员工信息从Excel导入到服务器端 (58)图1-19 实时数据监控功能界面 (58)图5-20 今日聊天记录功能界面 (64)图1-21 在线情况统计功能界面 (63)图5-22 文件传输记录查看功能界面 (65)图5-23 历史聊天记录管理界面 (66)图5-24 历史聊天记录加密状态 (68)图5-25 历史聊天记录解密状态 (68)图5-26 群共享管理界面 (71)图5-27 聊天记录数据图 (72)图5-28 聊天数据记录统计饼图显示 (72)图1-29 聊天数据记录统计柱形图显示 (73)图5-30 测试机1配置 (78)图5-31 测试机2配置 (76)附表索引表4-1 管理员信息表 (34)表4-2 今日聊天记录表 (34)表4-3 历史聊天记录表 (35)表4-4 群共享文件信息表 (35)表4-5 群组信息表 (35)表4-6 视频会议人员 (36)表4-7 文件传输记录 (36)表4-8 用户信息表 (36)表4-9 在线情况 (37)表5-1 数据传输测试结果表 (79)表5-2 部门间移动时间表 (79)表5-3 系统使用效果比对表 (80)表5-4 功能模块测试结果表 (80)基于Socket技术的企业局域网通信软件设计与实现摘要本课题围绕企业局域网通信软件展开,结合市场的实际情况,设计并实现一个基于C#.NET和Socket技术的企业局域网通信软件。

本系统支持企业部局域网的即时一对一聊天,群组聊天,文件传输,视频会议等功能。

系统运行于企业部的局域网,能够有效阻止企业部信息的外泄,能为企业提供高效安全的部沟通。

本课题的研究能够为企业提供高效的信息沟通,同时能有效的保障数据传输的安全性,提高企业的工作效率,促进企业的发展。

测试结果表明,本课题实现的企业局域网通信软件运行状态良好,各个模块的测试结果都符合预期结果。

本系统能够为企业的部沟通提供一个有力的平台,提高企业OA程度,促进企业的发展和改革。

关键词:局域网通信;音视频聊天;数据加密;数据分析The Design and Implementation of Enterprise LAN Communication Software Based on SocketAbstractThis paper focuses on the LAN communication software of the enterprise. By integrating with actual conditions of the market, the paper aims to design and implement a sort of LAN communication software of the enterprise based on C#.NET and Socket technology. This system supports some functions in enterprises' internal LAN, such as one-on-one IM, group chat, file transfer and video conferences, etc. The software runs within the enterprise local area network, so as to effectively prevent enterprise internal secret information from leaking out. In this way, efficient and safe internal communication will be provided for the enterprise. The research and system implement of this topic can provide high efficient communicative information for the enterprise. At the same time, it can effectively protect the security of the data transportation and improve the working efficiency of the enterprise, thus to promote the development of the enterprise.Test results indicate that the enterprise LAN communication software implemented in this subject is in good operation status, and test result of each module is in accordance with the expected one. This system provides a powerful platform for the internal communication of the enterprise, and it can also provide an OA level of the enterprise and promote the reform and development of the enterprise.Key words:LAN communication; Audio/video chat; Data encryption; Data analysis1绪论本章主要阐述了国外研究现状,并展示了本课题所研究的主要容以及论文的整体组织结构。

相关文档
最新文档