网络编程课程设计报告 19311226 高晓煜

网络编程课程设计报告 19311226 高晓煜

ID:14334089

大小:77.77 KB

页数:20页

时间:2018-07-28

网络编程课程设计报告 19311226 高晓煜_第1页
网络编程课程设计报告 19311226 高晓煜_第2页
网络编程课程设计报告 19311226 高晓煜_第3页
网络编程课程设计报告 19311226 高晓煜_第4页
网络编程课程设计报告 19311226 高晓煜_第5页
资源描述:

《网络编程课程设计报告 19311226 高晓煜》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络编程课程设计报告题目:基于linux网络聊天室设计姓名:高晓煜学院:信息科学技术学院专业:网络工程班级:网络112班学号:19311226指导教师:薛卫职称:副教授2014年6月22日基于linux网络聊天室设计摘要:本课程设计是在Linux环境下基于Socket进行开发的。系统服务器端和客户端组成。服务端程序通过共享存储区存储聊天数据,并发送给每个连接的客户端。通过多路复用的子进程实现服务端与多个客户端之间的数据发送与接收。可以在单机上开辟两个窗口分别运行客户、服务器的程序。本方案经gcc调试器调试成功,可以在机网

2、络聊天中使用。关键词:网络聊天;linux;socket1.linux中socket的基本应用:1.1服务端建立套接字的大致步骤:(1)建立socket。(2)bindPort绑定特定的端口。(3)listen监听特定的端口。(4)accept,当有客户端连接服务器端口时,accept接收信息,并返回新的套接字描述符,提供给操作(5)根据实际需求,write,read,send,recv等操作(6)关闭套接字。1.2客户端大致步骤:(1)创建socket.(2)根据服务器地址,connect连接到特定服务器。(3)wri

3、te,read等读写操作。(4)关闭套接字。1.3客户/服务器模型应用程序之间为了能顺利地进行通信,一方通常需要处于守候状态,等待另一方请求的到来。在分布式计算中,一个应用程序被动地等待,而另一个应用程序通过请求启动通信的模式就是客户/服务器模式。客户/服务器模型的典型运行过程包括五个主要步骤:(1)服务器监听相应窗口的输入。(2)客户机发出请求。(3)服务器接收到此请求。(4)服务器处理此请求,并将结果返回给客户机。(5)重复上述过程,直至完成一次会话过程任务。2.系统结构设计2.1系统结构设计本系统采用客户/服务器模

4、型,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Servermodel),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,

5、这就是客户端/服务器模式的TCP/IP。在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递[4]。所以多个客户端之间的通信就变为了客户端与服务端的通信。服务器端和客户端的主要组成如下:服务器端:套接字创建函数Socket(),端口绑定函数Bind(),套接口监听函数Listen(),接受连接函数Accept(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。客户端:套接口创建函数Socket(),套接口连接函数Connect(),数据收发

6、函数Read()和Write(),以及套接口关闭函数Close()。2.2通信设计首先运行服务器端程序,通过Socket()函数会建立一个套接字,然后通过Bind()函数绑定一个端口,然后调用Listen()在套接字指定的端口上开始倾听,利用Accept()从完全建立连接的队列中接受一个连接,连接获得后使用Read()和Write()函数进行通信。通信结束后调用Close()关闭套接字描述符。运行客户端的程序,调用Socket()函数建立一个套接字,使用Connect()函数与服务器端进行连接,连接完成后,使用Write

7、()和Read()与服务器端进行通信,通信结束后调用close()关闭套接字描述符。3.1系统调用相关函数(1)Socket()作用:socket函数为客户机或服务器创建一个sokcet格式:intsocket(intfamily,inttype,intprotocol);参数说明:Family:表示地址族,可以去AF_UNLX和AF_INT。其中,AF_UNLX只能够用于单一的UNIX系统进程间通信;AF_INT是针对Internet的,因而可以允许在远程主机之间通信,实验中使用AF_INT。Type:网络程序所采用的

8、通信协议,可以取SOCK_STREAM或SOCK_DGRAM。其中,SOCK_STREAM表明使用的是TCP协议,这样提供按顺序、可靠、双向、面向连接的比特流;SOCKE_DGRAM表明使用的是UDP协议,这样只会提供定长、不可靠、无连接的通信。(2)bind()格式:intbind(intsockfd,struct

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

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

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