基于socket接口的linux与windows网络聊天室设计与实现

基于socket接口的linux与windows网络聊天室设计与实现

ID:10138291

大小:31.00 KB

页数:7页

时间:2018-06-11

基于socket接口的linux与windows网络聊天室设计与实现_第1页
基于socket接口的linux与windows网络聊天室设计与实现_第2页
基于socket接口的linux与windows网络聊天室设计与实现_第3页
基于socket接口的linux与windows网络聊天室设计与实现_第4页
基于socket接口的linux与windows网络聊天室设计与实现_第5页
资源描述:

《基于socket接口的linux与windows网络聊天室设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于Socket接口的Linux与Windows网络聊天室设计与实现摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序。先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信。整个系统采用客户机/服务器(C/S)模型,Windows客户端采用MFC框架编写,Linux服务器和客户端均采用C语言实现。通过测试,Linux和Windows的客户端可以成功连接到服务器,从而实现跨平台网络聊天功能。关键词:Linux;Windows;套接字;客户机/服务器DOIDOI:10.11907/rjdk.151230中图分类号:TP

2、319文献标识码:A文章编号:16727800(2015)006009403作者简介作者简介:陈洁(1990-),女,山东菏泽人,山东科技大学信息科学与工程学院硕士研究生,研究方向为计算机网络应用技术;孟晓景(1962-),男,浙江绍兴人,山东科技大学信息科学与工程学院教授,研究方向为计算机网络。0引言7Linux是一个基于POSIX和UNIX的多任务、多用户、支持多线程的操作系统。Linux在众多方面表现出强大的优势,通常用在控制领域以提高系统性能。然而,目前使用最多的Windows操作系统图形界面友好,拥有良好的集成开发环境,操作简单,深受广大用户的喜爱。两种操作系统各有千秋,越来越

3、多场合同时使用,这就出现了跨平台的通信问题。对此,本文通过Socket套接口来实现不同操作系统之间的实时聊天,运用C/S模式设计出Windows与Linux操作系统间可以互相通信的网络聊天室,本客户端可以显示其它客户端的消息,实现了信息的及时共享。1Socket编程原理与过程1.1Socket编程原理Socket[1]作为BSDUNIX的进程通信机制,通常也称作“套接字”,用于描述IP地址和端口,是网络通信的基本单元。基于TCP/IP协议的Socket编程是一种典型的会话编程方式,它既适用于客户/服务器通信方式,又适用于点对点通信方式。套接字通过调用系统提供的库函数实现数据传输,不需要过

4、多了解底层的一些细节。本文采用C/S[2]通信方式编程。通信服务方式分为面向连接和无连接,这里使用的是面向连接的流套接字。1.2Socket编程过程Socket编程过程分为客户端和服务器端编程,大致通信过程如图1所示。7Socket编程过程首先需要创建套接字socket(),然后服务器端绑定套接字bind(),即将本地主机IP地址、端口号与创建的套接字绑定。绑定完成后进入监听状态listen(),等待客户端连接。客户端如果发起连接connect(),服务器和客户端的底层就进行三次握手接受连接accept()。连接成功后,双方就可以收发数据了。在此连接上使用send()函数发送数据,在连接

5、的另一端使用rev()函数接收数据,这样,Socket就连接了两端的应用程序。套接字机制提供了一系列的系统调用函数,通过这些函数调用,应用程序就可以在掩盖通信协议细节的情况下实现网络传输。2通信环境搭建本系统是跨平台网络聊天室,Linux为服务器端,用于接收客户端请求,而客户端可以是Windows操作系统,也可以是Linux操作系统。为避免使用多个计算机的麻烦,本系统在一台计算机上安装虚拟机,虚拟机为Linux操作系统,另外一个是Win7操作系统,在进行编程之前,要先检验Win7操作系统与Linux操作系统是否可以正常进行网络通信。把虚拟机端设置成桥接连接方式[3],这样虚拟机就可以当成

6、独立机。主机IP地址为192.168.131.153,虚拟机地址为192.168.131.152,通过ping命令检验互通性。3跨平台通信设计3.1Linux平台服务器设计7通过此函数把消息发送给每个连接的客户端;服务端程序父子进程分别负责发送和接收数据,以避免数据冲撞;本程序服务端端口号设定为:3490,端口绑定函数intbindPort(unsignedshortintport),此函数用来创建socket(AF_INET,SOCK_STREAM,0)流套接字,并绑定到指定的端口,在Linux操作系统下不需要初始化。当有客户端请求连接时,accept(sockfd,(structso

7、ckaddr*)&their_addr,&sin_size)用来接受客户端连接。连接成功后,服务器创建子进程,子进程ppid=fork()。父进程负责接收数据,子进程负责发送数据,把接收到的数据转发给已连接的客户端。3.2客户端设计因为此程序为聊天室,所以客户端设计分为Windows平台和Linux平台。3.2.1Windows平台客户端设计Windows客户端采用MFC框架来编写socket程序[4]。打开VisualC++6.0

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

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

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