基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)

基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)

ID:10138291

大?。?1.00 KB

頁數(shù):7頁

時(shí)間:2018-06-11

基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)_第5頁
資源描述:

《基于socket接口的linux與windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、基于Socket接口的Linux與Windows網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn)摘要:為了實(shí)現(xiàn)Linux與Windows跨平臺(tái)通信,及時(shí)共享信息,構(gòu)建了一個(gè)適用于跨平臺(tái)的網(wǎng)絡(luò)聊天室通信程序。先搭建跨平臺(tái)通信環(huán)境,然后使用Socket套接字網(wǎng)絡(luò)編程接口實(shí)現(xiàn)通信。整個(gè)系統(tǒng)采用客戶機(jī)/服務(wù)器(C/S)模型,Windows客戶端采用MFC框架編寫,Linux服務(wù)器和客戶端均采用C語言實(shí)現(xiàn)。通過測(cè)試,Linux和Windows的客戶端可以成功連接到服務(wù)器,從而實(shí)現(xiàn)跨平臺(tái)網(wǎng)絡(luò)聊天功能。關(guān)鍵詞:Linux;Windows;套接字;客戶機(jī)/服務(wù)器DOIDOI:10.11907/rjdk.151230中圖分類號(hào):TP

2、319文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2015)006009403作者簡(jiǎn)介作者簡(jiǎn)介:陳潔(1990-),女,山東菏澤人,山東科技大學(xué)信息科學(xué)與工程學(xué)院碩士研究生,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)應(yīng)用技術(shù);孟曉景(1962-),男,浙江紹興人,山東科技大學(xué)信息科學(xué)與工程學(xué)院教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)。0引言7Linux是一個(gè)基于POSIX和UNIX的多任務(wù)、多用戶、支持多線程的操作系統(tǒng)。Linux在眾多方面表現(xiàn)出強(qiáng)大的優(yōu)勢(shì),通常用在控制領(lǐng)域以提高系統(tǒng)性能。然而,目前使用最多的Windows操作系統(tǒng)圖形界面友好,擁有良好的集成開發(fā)環(huán)境,操作簡(jiǎn)單,深受廣大用戶的喜愛。兩種操作系統(tǒng)各有千秋,越來越

3、多場(chǎng)合同時(shí)使用,這就出現(xiàn)了跨平臺(tái)的通信問題。對(duì)此,本文通過Socket套接口來實(shí)現(xiàn)不同操作系統(tǒng)之間的實(shí)時(shí)聊天,運(yùn)用C/S模式設(shè)計(jì)出Windows與Linux操作系統(tǒng)間可以互相通信的網(wǎng)絡(luò)聊天室,本客戶端可以顯示其它客戶端的消息,實(shí)現(xiàn)了信息的及時(shí)共享。1Socket編程原理與過程1.1Socket編程原理Socket[1]作為BSDUNIX的進(jìn)程通信機(jī)制,通常也稱作“套接字”,用于描述IP地址和端口,是網(wǎng)絡(luò)通信的基本單元?;赥CP/IP協(xié)議的Socket編程是一種典型的會(huì)話編程方式,它既適用于客戶/服務(wù)器通信方式,又適用于點(diǎn)對(duì)點(diǎn)通信方式。套接字通過調(diào)用系統(tǒng)提供的庫(kù)函數(shù)實(shí)現(xiàn)數(shù)據(jù)傳輸,不需要過

4、多了解底層的一些細(xì)節(jié)。本文采用C/S[2]通信方式編程。通信服務(wù)方式分為面向連接和無連接,這里使用的是面向連接的流套接字。1.2Socket編程過程Socket編程過程分為客戶端和服務(wù)器端編程,大致通信過程如圖1所示。7Socket編程過程首先需要?jiǎng)?chuàng)建套接字socket(),然后服務(wù)器端綁定套接字bind(),即將本地主機(jī)IP地址、端口號(hào)與創(chuàng)建的套接字綁定。綁定完成后進(jìn)入監(jiān)聽狀態(tài)listen(),等待客戶端連接??蛻舳巳绻l(fā)起連接connect(),服務(wù)器和客戶端的底層就進(jìn)行三次握手接受連接accept()。連接成功后,雙方就可以收發(fā)數(shù)據(jù)了。在此連接上使用send()函數(shù)發(fā)送數(shù)據(jù),在連接

5、的另一端使用rev()函數(shù)接收數(shù)據(jù),這樣,Socket就連接了兩端的應(yīng)用程序。套接字機(jī)制提供了一系列的系統(tǒng)調(diào)用函數(shù),通過這些函數(shù)調(diào)用,應(yīng)用程序就可以在掩蓋通信協(xié)議細(xì)節(jié)的情況下實(shí)現(xiàn)網(wǎng)絡(luò)傳輸。2通信環(huán)境搭建本系統(tǒng)是跨平臺(tái)網(wǎng)絡(luò)聊天室,Linux為服務(wù)器端,用于接收客戶端請(qǐng)求,而客戶端可以是Windows操作系統(tǒng),也可以是Linux操作系統(tǒng)。為避免使用多個(gè)計(jì)算機(jī)的麻煩,本系統(tǒng)在一臺(tái)計(jì)算機(jī)上安裝虛擬機(jī),虛擬機(jī)為L(zhǎng)inux操作系統(tǒng),另外一個(gè)是Win7操作系統(tǒng),在進(jìn)行編程之前,要先檢驗(yàn)Win7操作系統(tǒng)與Linux操作系統(tǒng)是否可以正常進(jìn)行網(wǎng)絡(luò)通信。把虛擬機(jī)端設(shè)置成橋接連接方式[3],這樣虛擬機(jī)就可以當(dāng)成

6、獨(dú)立機(jī)。主機(jī)IP地址為192.168.131.153,虛擬機(jī)地址為192.168.131.152,通過ping命令檢驗(yàn)互通性。3跨平臺(tái)通信設(shè)計(jì)3.1Linux平臺(tái)服務(wù)器設(shè)計(jì)7通過此函數(shù)把消息發(fā)送給每個(gè)連接的客戶端;服務(wù)端程序父子進(jìn)程分別負(fù)責(zé)發(fā)送和接收數(shù)據(jù),以避免數(shù)據(jù)沖撞;本程序服務(wù)端端口號(hào)設(shè)定為:3490,端口綁定函數(shù)intbindPort(unsignedshortintport),此函數(shù)用來創(chuàng)建socket(AF_INET,SOCK_STREAM,0)流套接字,并綁定到指定的端口,在Linux操作系統(tǒng)下不需要初始化。當(dāng)有客戶端請(qǐng)求連接時(shí),accept(sockfd,(structso

7、ckaddr*)&their_addr,&sin_size)用來接受客戶端連接。連接成功后,服務(wù)器創(chuàng)建子進(jìn)程,子進(jìn)程ppid=fork()。父進(jìn)程負(fù)責(zé)接收數(shù)據(jù),子進(jìn)程負(fù)責(zé)發(fā)送數(shù)據(jù),把接收到的數(shù)據(jù)轉(zhuǎn)發(fā)給已連接的客戶端。3.2客戶端設(shè)計(jì)因?yàn)榇顺绦驗(yàn)榱奶焓?,所以客戶端設(shè)計(jì)分為Windows平臺(tái)和Linux平臺(tái)。3.2.1Windows平臺(tái)客戶端設(shè)計(jì)Windows客戶端采用MFC框架來編寫socket程序[4]。打開VisualC++6.0

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。