• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Windows API的簡單聊天軟件的設(shè)計與實現(xiàn)

      2015-10-21 17:50:30元宇聰
      新課程·下旬 2015年10期
      關(guān)鍵詞:視窗命令聊天

      元宇聰

      摘 要:現(xiàn)實生活中大家都用QQ聊天,不管是多么龐大、復(fù)雜的聊天軟件,只要是在Windows操作系統(tǒng)上運行的程序,都必須調(diào)用最基本的Windows API進行通信。探討如何使用Windows最基本的應(yīng)用程序接口、使用C++編寫一個控制臺界面的簡單聊天軟件,實現(xiàn)自由地發(fā)送接收文本,并顯示在屏幕上。編寫完成之后測試在同一臺電腦的兩個不同進程之間進行通信。

      關(guān)鍵詞:聊天軟件;C++;服務(wù)器

      一、聊天軟件采用的主要技術(shù)

      1.開發(fā)平臺C++

      C++是在C語言的基礎(chǔ)上開發(fā)的一種通用編程語言,應(yīng)用廣泛。C++支持多種編程范式,如面向?qū)ο缶幊?、泛型編程、面向過程編程、函數(shù)式編程等。最新正式標準C++14于2014年8月18日公布。正式名稱為ISO/IEC 14882:2014。其編程領(lǐng)域眾廣,常用于系統(tǒng)開發(fā)、引擎開發(fā)等應(yīng)用領(lǐng)域,是迄今為止最受人們受用的最強大編程語言之一。

      標準模板庫(Standard Template Library)是惠普實驗室開發(fā)的一系列軟件的統(tǒng)稱,是類庫和函數(shù)的集合?,F(xiàn)在是C++的一部分,由C++標準委員會制定,并不斷維護更新。

      2.視窗操作系統(tǒng)應(yīng)用程序接口

      視窗操作系統(tǒng)應(yīng)用程序接口(Windows Application Programming Interface)是微軟對于視窗操作系統(tǒng)中可用的核心應(yīng)用程序編程接口的名稱。它被設(shè)計為各種語言的程序調(diào)用,也是應(yīng)用軟件與視窗系統(tǒng)最直接的交互方式。

      視窗套接字(Windows Socket)是網(wǎng)絡(luò)通信的基本構(gòu)件,是視窗操作系統(tǒng)下得到廣泛應(yīng)用、開放、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。20世紀90年代初,微軟和第三方廠商共同制訂了一套標準,即視窗套接字規(guī)范,簡稱WinSock。一個套接字就是一個通信標識,由一個短整數(shù)表示,實際上就是一個句柄,代表網(wǎng)絡(luò)協(xié)議中的一組數(shù)據(jù),該數(shù)據(jù)包含了通信雙方的因特網(wǎng)協(xié)議地址和當前的連接狀態(tài)等信息。

      視窗套接字使用客戶端/服務(wù)器模型。一個服務(wù)程序通常在一個眾所周知的地址監(jiān)聽對服務(wù)的請求,此時服務(wù)進程一直處于休眠狀態(tài),直到一個客戶對這個服務(wù)的地址提出了連接請求。在這個時刻,服務(wù)程序被“驚醒”并且為客戶提供服務(wù)——對客戶的請求做出適當?shù)姆磻?yīng)。

      二、聊天軟件的設(shè)計

      1.軟件主要流程

      這是一個控制臺程序,用一個循環(huán)讓用戶輸入內(nèi)容,程序?qū)τ脩糨斎氲膬?nèi)容進行判斷,之后繼續(xù)循環(huán)。

      程序把“/”開頭的字符串都當作命令,然后對命令進行分析,根據(jù)不同的命令實現(xiàn)對程序的控制。有些命令包含多個參數(shù),參數(shù)寫在命令后面,用空格隔開。如果用戶輸入不存在的命令則提示錯誤。

      程序把非“/”開頭的字符串都當作聊天內(nèi)容,在建立連接之后會把輸入內(nèi)容發(fā)送給對方。

      (1)服務(wù)器偵聽。用戶輸入“/偵聽”命令,參數(shù)1為偵聽的端口號,執(zhí)行之后程序開始偵聽。偵聽時會阻塞主線程的執(zhí)行然后等待客戶端的連接,一旦收到客戶端的連接請求,才繼續(xù)運行并建立連接。

      (2)客戶端連接。用戶輸入“/連接”命令,參數(shù)1為服務(wù)器的地址,參數(shù)2為服務(wù)器偵聽的端口號,命令檢查無誤并執(zhí)行之后,開始嘗試與服務(wù)器連接。連接時會阻塞主線程的執(zhí)行然后等待服務(wù)器的回應(yīng)。當客戶端收到服務(wù)器的回應(yīng)時,建立連接。

      (3)斷開連接。建立連接后,任意一端都可以隨時斷開連接。其中一端斷開連接時,另一端在接收數(shù)據(jù)時會偵測到并斷開連接。

      2.發(fā)送接收數(shù)據(jù)的過程

      建立連接后,服務(wù)器和客戶端同時是發(fā)送者和接收者,發(fā)送者向接收者發(fā)送文本,接收者收到內(nèi)容后在屏幕上顯示文本。

      發(fā)送過程在主線程,接收過程在接收線程。發(fā)送和接收可以同時進行,互不干擾。

      編輯 薛直艷

      猜你喜歡
      視窗命令聊天
      視窗
      工會博覽(2022年33期)2023-01-12 08:53:38
      視窗
      工會博覽(2022年17期)2022-07-15 07:26:14
      只聽主人的命令
      移防命令下達后
      視窗
      中國水利(2017年9期)2017-06-07 08:23:27
      我就是不想跟你聊天了
      意林(2017年9期)2017-06-06 10:26:12
      敞開門聊天
      這是人民的命令
      創(chuàng)意視窗
      藍色命令
      平昌县| 剑阁县| 永胜县| 桦甸市| 贡觉县| 崇礼县| 东山县| 福海县| 井研县| 海兴县| 高雄县| 六安市| 凤城市| 大宁县| 墨竹工卡县| 平利县| 瑞昌市| 建昌县| 临潭县| 易门县| 繁昌县| 舞阳县| 淮北市| 望江县| 新密市| 义乌市| 黑龙江省| 库车县| 宝应县| 乌鲁木齐县| 博白县| 米脂县| 内丘县| 卢龙县| 眉山市| 游戏| 聊城市| 博兴县| 漳浦县| 赞皇县| 航空|