基于java的局域网聊天系统

上传人:Bod****ee 文档编号:47173569 上传时间:2018-06-30 格式:DOC 页数:46 大小:1.31MB
返回 下载 相关 举报
基于java的局域网聊天系统_第1页
第1页 / 共46页
基于java的局域网聊天系统_第2页
第2页 / 共46页
基于java的局域网聊天系统_第3页
第3页 / 共46页
基于java的局域网聊天系统_第4页
第4页 / 共46页
基于java的局域网聊天系统_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《基于java的局域网聊天系统》由会员分享,可在线阅读,更多相关《基于java的局域网聊天系统(46页珍藏版)》请在金锄头文库上搜索。

1、目录目录1引言引言.3 1.1 课题要求及目标 .3 1.2 开发目标 .7 2 系统总体设计(针对一个完整的题目)系统总体设计(针对一个完整的题目) .7 2.1 用例图及用例描述 .7 2.2 系统结构 .10 3. 系统详细设计与实现系统详细设计与实现 .113.1 引言.113.2 程序系统的结构.123.3 类级说明.133.4 函数级说明.2 4总结总结.374.1 运行结果.374.2 测试与分析46 5 任务分配表 .47 参考文献 .481 引言引言1.1 课题要求及目标课题要求及目标(1 1)课题要求课题要求 软件名:软件名:网上聊天系统(分服务器端和客户端两部分) 功能:

2、功能: 使用 Winsock 实现网上聊天功能(实现时可在一台机器上调试运行) 。用户可 以通过客户端连接到服务器端并进行网上聊天。当然,聊天时可以启动多个客户端。编程语言:编程语言:java硬件平台硬件平台 CPU:Pentium4 以上 内存:128M 以上 软件平台软件平台 操作系统:windows 系列,mac 系列,linux 等开发工具开发工具: Eclipse,JDK6描述:描述: (1)实现群聊和私聊;(2)实现文件的发送与接收;(3)实现截图功能;(4)实现用户列表的维护。(5)实现字体的改变 (2 2)开发技术开发技术 Socket 的编程模型如图 1 所示。图图 1 1

3、SocketSocket 的编程模型的编程模型字节流套接字(Stream Socket) 是最常用的套接字类型,TCP/IP 协议族中的 TCP 协议 使用此类接口。字节流套接口提供面向连接的、无差错的、发送先后顺序一致的、无记录 边界和非重复的网络信息包传输。其模型如图 2 所示。 数据报套接字 (Datagram Socket) TCP/IP 协议族中的 UDP 协议使用此类接口,它是 无连接的服务,它以独立的信息包进行网络传输,信息包最大长度为 32KB,传输不保证 顺序性、可靠性和无重复性,它通常用于单个报文传输或可靠性不重要的场合。数据报套 接口的一个重要特点是它保留了记录边界。其模

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

5、升级到 32 位。 (3)程序开发环境和开发语言 创建套接字socket() 应用程序在使用套接字前,首先必须拥有一个套接字,系统调用 socket()向应用程 序提供创建套接字的手段,其调用格式如下: SOCKETSOCKET socket(intsocket(int af,af, intint type,type, intint protocol);protocol); 该调用要接收三个参数:af、type、protocol。参数 af 指定通信发生的区域, UNIX 系统支持的地址族有:AF_UNIX、AF_INET、AF_NS 等,而 DOS、WINDOWS 中 仅支持 AF_INET

6、,它是网际网区域。因此,地址族与协议族相同。 参数 type 描述要建立的套接字的类型。若取 SOCK_STREAM 表示要创建的套接字是 流套接字,取 SOCK_DGRAM 创建的是数据报套接字,取 SOCK_RAW 表示创建原始套接 字。 参数 protocol 说明该套接字使用的特定协议,如果调用者不希望特别指定使用的协议, 则置为 0,使用默认的连接模式。 若套接字创建成功则该函数返回所创建的套接字句柄 SOCKET,否则产生 INVALID_SOCKET 错误。 指定本地地址bind() 当一个套接字用 socket()创建后,存在一个名字空间(地址族),但它没有被命名。bind()

7、将套接字地址(包括本地主机地址和本地端口地址)与所创建的套接字号联系起来, 即将名字赋予套接字,以指定本地半相关。其调用格式如下: intint bind(SOCKETbind(SOCKET s,s, constconst structstruct sockaddr*sockaddr* name,name, intint namelen);namelen); 参数 s 是由 socket()调用返回的并且未作连接的套接字描述符(套接字号)。 参数 name 是赋给套接字 s 的本地地址,它由 struct sockaddr 结构表示,namelen 表明 了 name 的长度。 如果没有错误发

8、生,bind()返回 0。否则返回值 SOCKET_ERROR。 sockaddr 结构随选择的协议不同而变化,因此一般情况下另一个与该地址结构大 小相同的 sockaddr_in 结构更常用,sockaddr_in 结构用来标识 TCP/IP 协议下的地址,并可 以方便地通过强制类型转换将其转换为 sockaddr 结构,sockaddr_in 的格式如下: struct sockaddr_in short sin_family; /*AF_INET*/ u_short sin_port; /*16 位端口号*/ struct in_addr sin_addr; /*32 位 IP 地址*/

9、 char sin_zero8; /*保留*/ 监听连接listen() 此调用用于面向连接服务器,表明它愿意接收连接。listen()需在 accept()之前调用, 其调用格式如下: intint listen(SOCKETlisten(SOCKET s,s, intint backlog);backlog); 参数 s 标识一个本地已建立、尚未连接的套接字号,服务器愿意从它上面接收请 求。backlog 表示请求连接队列的最大长度,用于限制排队请求的个数,目前允许的最大值 为 5。如果没有错误发生,listen()返回 0。否则它返回 SOCKET_ERROR。 listen()在执行调

10、用过程中可为没有调用过 bind()的套接字 s 完成所必须的连接,并 建立长度为 backlog 的请求连接队列。 调用 listen()是服务器接收一个连接请求的四个步骤中的第三步。它在调用 socket() 分配一个流套接字,且调用 bind()给 s 赋于一个名字之后调用,而且一定要在 accept()之前 调用。 建立套接字连接connect()与 accept() 这两个系统调用用于完成一个完整相关的建立,其中 connect()用于建立连接。无连接 的套接字进程也可以调用 connect(),但这时在进程之间没有实际的报文交换,调用将从本 地操作系统直接返回。这样做的优点是程序员

11、不必为每一数据指定目的地址,而且如果收 到的一个数据报,其目的端口未与任何套接字建立“连接”,便能判断该端口不可操作。而 accept()用于使服务器等待来自某客户进程的实际连接。 connect()的调用格式如下: intint connect(SOCKETconnect(SOCKET s,s, constconst structstruct sockaddrsockaddr * * name,name, intint namelen);namelen); 参数 s 是欲建立连接的本地套接字描述符。 参数 name 指出说明对方套接字地址结构的指针。对方套接字地址长度由 namelen 说

12、明。 如果没有错误发生,connect()返回 0。否则返回值 SOCKET_ERROR。在面向连接的协 议中,该调用导致本地系统和外部系统之间连接实际建立。 由于地址族总被包含在套接字地址结构的前两个字节中,并通过 socket()调用与某个协 议族相关。因此 bind()和 connect()无须协议作为参数。 accept()的调用格式如下: SOCKETSOCKET accept(SOCKETaccept(SOCKET s,s, structstruct sockaddrsockaddr * * addr,addr, intint FAR*FAR* addrlen);addrlen); 参数 s 为本地套接字描述符,在用做 accept()调用的参数前应该先调用过 listen()。 addr 指向客户方套接字地址结构的指针,用来接收连接实体的地址。addr 的确切格式 由套接字创建时建立的地址族决定。 a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号