1 / 20
文档名称:

基于Linux的socket编程的聊天室设计.docx

格式:docx   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于Linux的socket编程的聊天室设计.docx

上传人:3346389411 2015/10/4 文件大小:0 KB

下载得到文件列表

基于Linux的socket编程的聊天室设计.docx

文档介绍

文档介绍:LINUX课程设计
基于Linux的socket编程的聊天室设计
专业:计算机科学与技术
班级:
姓名:
学号:
指导老师:郭玉华
实验目的
基于 Socket 套接口,实现聊天程序的设计与实现,增强程序编写能力,了解基于socket的程序设计方法,加深对计算机网络通信的理解。另外,通过课程设计培养自己严谨的科学态度,认真的工作作风、团队协作精神、自主设计和独力思考的能力。
实验原理
实验中,客户应用程序向服务器程序请求服务。服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对客户的请求作出适当的反应。 
客户端部分: 
手动输入服务器端IP地址和端口号进行连接
发送消息给服务器端并显示服务器端回传的消息
监控连接状态,客户离开或故障时从列表中删除相应表项,并及时更新连接表。
服务器端部分: 
手动建立服务器端与客户端的连接请求
把用户输入的信息及时发送到服务端,同时准备好接受,并显示信息。
在用户退出时关闭连接并保存聊天记录。
客户端-服务器端架构:
相关函数:
socket()函数:
int socket(int family,int type,int proto);
1) family 指定 protocol family ( 对应 TCP/IP).
2) type 指定服务类型(SOCK_STREAM, SOCK_DGRAM).
3) protocol 指定协议(通常0, 代表缺省值).
bind()函数:
给socket 绑定一个地址.
int bind( int sockfd,
const struct sockaddr *myaddr,
socklen_t addrlen);
bind 返回值
listen()函数:
accept()函数:
int accept( int sockfd,struct sockaddr* cliaddr, socklen_t *addrlen);
sockfd 是被动模式的 TCP socket.
cliaddr 指针,指向一个已分配好的空间. 返回客户地址.
addrlen 是一个 value-result 参数
必须设置为 cliaddr 的空间大小
返回时, 将被设置为使用 cliaddr 的空间大小.。
LINUX简介:
Linux操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日。由于Linux是开源和免费的,得到了广大计算机爱好者全力支持,现已成为今天世界上使用最多的一种UNIX类操作系统。其具有的特点有:
开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。
多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。
良好的用户界面:Linux向用户提供了两种界面,用户界面和系统调用。Linux还为用户提供了图形用户界面,它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好图形化界面。
设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,提供了丰富的网络功能,完善的内置网络是Linux一大特点。
安全性:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
良好的可移植性:是指将操作系统从一个平台转移到另一个平台,它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
TCP简介:
TCP与UDP同为传输层协议。本系统采用的传输协议TCP协议。TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。
TCP协议主要特点:1、面向连接的传输;2、端到端的通信;3、高可靠性,确保传输数据的正确性,不出现丢失或乱序;4、全双工方式传输;5、采用字节流方式,即以字节为单位传输字节序列;6、紧急数据传送功能;
实验实现
//----------------------------------