基于java的局域网聊天系统

基于java的局域网聊天系统

ID:3665877

大小:1.24 MB

页数:46页

时间:2017-11-22

基于java的局域网聊天系统_第1页
基于java的局域网聊天系统_第2页
基于java的局域网聊天系统_第3页
基于java的局域网聊天系统_第4页
基于java的局域网聊天系统_第5页
资源描述:

《基于java的局域网聊天系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录1引言31.1课题要求及目标31.2开发目标72系统总体设计(针对一个完整的题目)72.1用例图及用例描述72.2系统结构103.系统详细设计与实现113.1引言…………………………………………………………………………..113.2程序系统的结构…………………………………………………………….123.3类级说明…………………………………………………………………….133.4函数级说明…………………………………………………………………..24总结374.1运行结果…………………………………………………………………..374.2测试与分析…………………………

2、……………………………………465任务分配表47参考文献4846/461引言1.1课题要求及目标(1)课题要求软件名:网上聊天系统(分服务器端和客户端两部分)功能:使用Winsock实现网上聊天功能(实现时可在一台机器上调试运行)。用户可以通过客户端连接到服务器端并进行网上聊天。当然,聊天时可以启动多个客户端。编程语言:java硬件平台CPU:Pentium4以上内存:128M以上软件平台操作系统:windows系列,mac系列,linux等开发工具:Eclipse,JDK6描述:(1)实现群聊和私聊;(2)实现文件的发送与接收;(3)实现截图功能;(4)实

3、现用户列表的维护。(5)实现字体的改变(2)开发技术Socket的编程模型如图1所示。图1Socket的编程模型46/46字节流套接字(StreamSocket) 是最常用的套接字类型,TCP/IP协议族中的TCP协议使用此类接口。字节流套接口提供面向连接的、无差错的、发送先后顺序一致的、无记录边界和非重复的网络信息包传输。其模型如图2所示。数据报套接字(DatagramSocket) TCP/IP协议族中的UDP协议使用此类接口,它是无连接的服务,它以独立的信息包进行网络传输,信息包最大长度为32KB,传输不保证顺序性、可靠性和无重复性,它通常用于单个报文

4、传输或可靠性不重要的场合。数据报套接口的一个重要特点是它保留了记录边界。其模型如图3所示。原始数据报套接字(RawSocket) 提供对网络下层通讯协议(如IP协议)的直接访问,它一般不是提供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功能。图2面向连接的SOCKET编程模型46/46图3面向非连接的SOCKET编程模型WindowsSockets规范中定义了一个新的数据类型SOCKET,这一类型的定义对于将来WindowsSockets规范的升级是必要的。这一类型的定义保证了应用程序向Win32环境的可移植性。因为这一类型会自动地从16位升级到

5、32位。(1)程序开发环境和开发语言创建套接字──socket()应用程序在使用套接字前,首先必须拥有一个套接字,系统调用socket()向应用程序提供创建套接字的手段,其调用格式如下:SOCKETsocket(intaf,inttype,intprotocol);该调用要接收三个参数:af、type、protocol。参数af指定通信发生的区域,UNIX系统支持的地址族有:AF_UNIX、AF_INET、AF_NS等,而DOS、WINDOWS中仅支持AF_INET,它是网际网区域。因此,地址族与协议族相同。参数type描述要建立的套接字的类型。若取SOCK

6、_STREAM表示要创建的套接字是流套接字,取SOCK_DGRAM创建的是数据报套接字,取SOCK_RAW表示创建原始套接字。参数protocol说明该套接字使用的特定协议,如果调用者不希望特别指定使用的协议,则置为0,使用默认的连接模式。若套接字创建成功则该函数返回所创建的套接字句柄SOCKET,否则产生INVALID_SOCKET错误。指定本地地址──bind()当一个套接字用socket()创建后,存在一个名字空间(地址族),但它没有被命名。bind()46/46将套接字地址(包括本地主机地址和本地端口地址)与所创建的套接字号联系起来,即将名字赋予套接

7、字,以指定本地半相关。其调用格式如下:intbind(SOCKETs,conststructsockaddr*name,intnamelen);参数s是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。参数name是赋给套接字s的本地地址,它由structsockaddr结构表示,namelen表明了name的长度。如果没有错误发生,bind()返回0。否则返回值SOCKET_ERROR。sockaddr结构随选择的协议不同而变化,因此一般情况下另一个与该地址结构大小相同的sockaddr_in结构更常用,sockaddr_in结构用来标识

8、TCP/IP协议下的地址,并可以方便地通过强制类型转

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。