课程设计---基于linux网络聊天室的设计内容摘要:
《基于 Linux 网络聊天室的设计 》 第 8 页 共 21 页 上述点对点通信的实现知识完成了主机进程与服务器进程之间的连接,建立连接的进程之间是一对一的联系,即主 机的一个进程与服务器的一个进程之间建立的连接。 而每个进程进行通信的环节都包括了发送信息和接口信息两个任务,这两个任务通过一个端口地址发送和接收。 对于多个并发的任务需要创建多个线程或线程去实现。 使用一个进程去完成发送信息是没有问题的,因为发送总是主动的;而使用同一个进程再去完成接受信息去不一定会成功,因为接受信息是被动的,所以当没有信息可以接收时,该进程就会被阻塞,从而导致发送任务也一起被阻塞。 同一个端口的发送和接收是两个并发任务,应该由两个不同的任务去分别完成信息的发送和接收。 这样,当接收信息任务因没有信 息而被阻塞时,不至于影响发送任务的执行。 那么,发送和接收两个任务是使用两个进程还是两个进程去完成呢。 在网络通信中,端口地址是以进程为单位进程分配的,而一个进程与外界的消息发送与接收必须通过分配给它的同一个端口进行。 因此,不能通过创建进程方式来解决上诉问题,因为两个进程会分别对应两个不同的端口,而发送和接收必须使用同一端口。 线程不是资源分配的单位,所以如果使用两个线程不会对线程分配新的端口。 因此,本实验需要使用两个线程去分别完成发送和接收信息的任务,这两个线程共享其进程拥有的统一个端口地址。 由于创建进程的 进程本身会作为一个线程来调度,所以只需要再创建一个线程专门负责接收信息就可以了。 因此,对于从每个客户端发来的请求,服务器端都要创建相应的线程去接收并处理;同理,对于客户端而言,也要创建一个线程去读取服务器端发来的信息。 《基于 Linux 网络聊天室的设计 》 第 9 页 共 21 页 3 系统 设计 系统结构设计 本系统采用客户 /服务器模型, 在 TCP/IP 网络应用中,通信的两个进程间相互作用的主要模式是客户 /服务器模式( Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。 客户 /服务器模式的建立基于以下两点:首 先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。 其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是客户端 /服务器模式的 TCP/IP。 在客户 /服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递 [4]。 所以多个客户端之间的通信就变为了客户端与服务端的通信。 服务 器 端和客户端的主要组成如下: 服务器 端:套接字创建函数 Socket(),端口绑定函数 Bind(),套接口监听函数 Listen(),接受连接函数 Accept(),数据收发函数 Read()和 Write(),以及套接口关闭函数 Close()。 客户端:套接口创建函数 Socket(),套接口连接函数 Connect(),数据收发函数 Read()和 Write(),以及套接口关闭函数 Close()。 首先运行 服务器端 程序,通过 Socket()函数会建立一个套接字,然后通过 Bind()函数绑定一个端口,然后 调用 Listen()在套接字指定的端口上开始倾听,利用 Accept()从完全建立连接的队列中接受一个连接,连接获得后使用 Read()和 Write()函数进行通信。 通信结束后调用 Close()关闭套接字描述符。 运行客户端的程序,调用 Socket()函数建立一个套接字,使用 Connect()函数与服务器端进行连接,连接完成后,使用 Write()和 Read()与服务器端进行通信,通信结束后调用 close()关闭套接字描述符。 《基于 Linux 网络聊天室的设计 》 第 10 页 共 21 页 4 系统实现 相关函数 (1)Socket() 作用: socket 函数 为客户机或服务器创建一个 sokcet 格式: int socket(int family,int type,int protocol)。 参数说明: Family:表示地址族,可以去 AF_UNLX 和 AF_INT。 其中, AF_UNLX 只能够用于单一的 UNIX 系统进程间通信。 AF_INT 是针对 Inter 的,因而可以允许在远程主机之间通信,实验中使用 AF_INT。 Type:网络程序所采用的通信协议,可以取 SOCK_STREAM 或 SOCK_DGRAM。 其中,SOCK_STREAM 表明使用的是 TCP 协议,这样提供按顺序、可靠、双向、面向连接的比特流;SOCKE_DGRAM 表明使用的是 UDP 协议,这样只会提供定长、不可靠、无连接的通信。 (2)bind( ) 格式: int bind(int sockfd,struct sockaddr *addr,int addrlen)。 参数说明: Sockfd: socket 的文件描述符号。 Sockaddr:表示名 字所用的一个数据结构,用来保存地址 (包括 IP 地址和端口 ) Addrlen:设置结构大小长度。 (3)listen() 格式: int listen(int sockfd, int backlog)。 作用:监听连接信号,和 accepted 函数合同。 参数说明: Sockfd:表示 socket 调用返回的文件描述符。 Backlog:表示接入队列允许的连接数目,大多数系统允许 20 个,也可以子定义 5~ 10 个。 (4)accept() 格式: 《基于 Linux 网络聊天室的设计 》 第 11 页 共 21 页 Int accept (int sockfd, void *addr, int *addrlen)。 作用:与 listen 函数合用,监听信息、接收客户端请求。 参数说明: Sockfd:表示 socket 的文件描述符。 Addr:表示指向局部的数据结构 struct sockaddrin 的指针。 Addrlen:表示地址的长度。 (5)connect() 格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)。 作用:在面向 连接的系统中客户及连接服务器时使用, connect 必须在 bind 后使用。 参数作用: Sockfd:表示 socket 的文件描述符。 Servaddr:表示村访目的端口和 ip 地址(套接字)的数据结构。 (6)send() 和 recv() 格式 1: Int send (int sockfd, const vod *msg,int len, int flags)。 功能:发送信息。 格式 2: Int recv (int sockfd , void *buf,int len, usigned int flags)。 作用:用于流式 socket、数据报 socket 内部之间的通信。 (7)close( ) 和 shutdown ( ) 格式: Close( int sockfd) 或 Int shutdown(int sockfd , int how)。 参数。课程设计---基于linux网络聊天室的设计
相关推荐
整点。 Y N Y 8 的 31 个字节,命令控制字为 FEH(写 )、 FFH(读 )。 其程序执行流程图如图 7所示。 图 7 DS1302 工作流程图 使 DS1302 不具备写保护 复位将产生一个高电平 写 1302 地址 变量初始化 将该地址的数据读出 地址增加 延时一段时间 写 1302地址 地址增加 延时一段时间 复位将产生 1 个高电平 显示数据 向该地址写数据 数据写完了。
本系统用到的是 VC 的 CAsyncSocket 类, 该类在非常低的级别上封装 Windows Sockets API,它的使用方法如下: (1)创建套接字 创建一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。 CAsyncSocket sock。 sock。 Create( )。 // Use the default parameters 或
此提供给 LED 显示器的显示段码为 1 个字节。 河南理工大学本科课程设计报告 9 图 数码管电 路 按键部分设计 操作键设计 常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。 机械触点式按键是利用 机械 弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。 但是触点处易侵入灰尘而导致接触不良,体积相对较大。 导电橡胶按键是利用橡胶的弹性来复位
分公司简介 展示宝克分公司形象,提升宝克的品牌价值,用分公司的成绩来证明宝克的规模 分公司新闻 分公司风采 分公司业务推广 分公司 业绩与荣誉 10.网站导航 网络信息导航 网站的导航系统 网站地图展示 OA 系统 公司通知 工作计划 会议管理 内部文件发放 宝克的网上办公自动化系统。 办公用品管理 网上会议 个人工具 网站功能模块说明 新闻动态管理发布系统 功能描述:新闻类别动态管理
,开始实验前一定要 认真检查, 仔细测试。 计算机 网络实验指导手册 第 11页 共 241页 2. 交换机 配置文件的 备份 一. 目的与要求 目的 认识交换机配置文件备份的必要性; 掌握交换机有关命令的使用方法; 掌握 将交换机配置文件备份到 TFTP Server的 具体做法 ; 查验 在 PC上 备份的 交换机配置文件的具体内容。 要求: 认真完成实验基本步骤,理解和掌握操作流程
学生毕业论文 9 开发工具及运行环境 ( 1)开发工具概述 我们知道, 目前的数据库应用技术中普遍采用的就是客户机 /服务器体系结构,在这种体系结构中,所有的数据和数据库管理系统都在服务器上,客户机通过采用标准的SQL 语句等方式来访问服务器上数据库中的数据。 由于这种体系结构把数据和对数据的管理都统一放在了服务器上。 就保证了数据的安全性和完整性,同时也可以充分利用服务器高性能的特点。