<wbr id="ede8e"></wbr><bdo id="ede8e"><var id="ede8e"><optgroup id="ede8e"></optgroup></var></bdo>
    1. <sub id="ede8e"></sub>
    2. <sub id="ede8e"></sub>
    3. 18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品
      首頁 > 文章中心 > 正文

      網上交工具設計電子商務

      前言:本站為你精心整理了網上交工具設計電子商務范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      網上交工具設計電子商務

      摘要:使用Visualc#.NET中的Socket編程的關鍵技術,以及多線程的知識實現一個簡單的網上交工具,它提供的功能有:用戶登錄、顯示所有當前的在線用戶、顯示進行交談的用戶信息、與選定的用戶進行交談,并且支持私人交談。對于開發一般性的通信軟件,有一定的參考價值。

      關鍵詞:SocketTCP協議服務器客戶端線程

      一、引言

      隨著信息技術的高速發展,網上交談已成為人們學習和工作的重要手段,那么如何設計合理的、人性化的網上交談工具就成為當務之急。使用Visualc#.NET中的Socket編程技術,以及多線程的知識可快速、方便地設計理想的網上交談工具。一個Socket通信無論功能多么齊全、程序多么復雜,其基本結構均應包括以下步驟:創建Socket對象,建立連接;打開連接到Socket的輸入/輸出流;對Socket進行讀寫操作;關閉Socket套接字,關閉流。

      二、TCP協議通信的流程

      TCP協議是面向連接的協議,它的實現需要數據發送方和數據接收方建立數據通信連接,它的具體流程如下:

      1.服務器端首先創建服務器套接字

      2.服務器套接字監聽一個端口,等待客戶端的請求

      3.客戶端創建一個客戶端套接字

      4.客戶端向服務器發送連接請求

      5.服務器確認與客戶端的連接

      6.客戶端和服務器利用建立的連接進行通信

      7.通信完畢后,客戶端和服務器關閉各自的連接

      三、Socket編程簡介

      1.利用Socket建立服務器程序

      要用Socket建立一個TCP服務器程序,一般需要以下幾個步驟:

      (1)創建一個服務器套接字,用IP地址和端口初始化服務器

      (2)監聽服務器端口

      (3)確認與客戶端的連接

      (4)處理客戶端的請求并回應客戶端

      (5)斷開客戶端的連接,釋放客戶端的連接

      (6)關閉服務器,釋放服務器連接

      2.利用Socket建立客戶端程序

      要用Socket建立一個TCP客戶端程序,一般需要以下幾個步驟:

      (1)創建客戶端套接字

      (2)連接服務器

      (3)得到與服務器通信的流通道

      (4)向服務器發送數據

      (5)接收從服務器發回的數據

      (6)斷開連接

      四、設計方案

      1.服務器端的設計

      服務器端管理著交談任務,它維持著一張當前在線用戶的列表,轉發用戶發送來的信息,主要功能如下:

      監聽本機IP地址中的一個指定的端口。

      當有客戶端向該端口發出請求時,服務器程序立即建立一個與該客戶端的連接并啟動一個新的線程來處理該客戶端的所有請求。

      根據客戶端發送來的各種不同的請求,執行相應的操作,并將處理結果返回給該客戶端。服務器能識別4種請求命令:CONN(建立新的連接)、CHAT(聊天)、PRIV(私聊)和EXIT(離開),服務器接收ASCII字符信息,用“|”分隔信息的各個部分,一條信息包含一條命令,一個或多個信息參數。

      2.客戶端的設計

      客戶端應用程序包含用戶登錄窗口和用戶交談的主窗口,它允許用戶登錄到服務器,可以向服務器發送信息,同時可以接收從服務器返回的信息,設計的主要功能如下:

      向遠程服務器發送連接請求。

      得到服務器程序的確認后,建立與服務器的連接,并獲得與服務器交互的流通道(NetworkStream)。

      通過網絡流通道與服務器端的程序進行數據通信。向服務器發送服務器能夠識別的以上4種命令請求,同時也接收服務器發回的命令。客戶端能夠識別的命令有JOIN(通知當前在線用戶有新的用戶進入聊天室)、LIST(更新當前在線用戶)和QUIT(關閉客戶端程序)。客戶端程序接收ASCII字符信息,用“|”分隔信息的各個部分,一條信息包含一條命令,一個或多個信息參數。五、解決方案

      1.服務器端的實現

      服務器端是一個Windows窗體應用程序,命名為ChatServer。當運行服務器程序時,單擊服務器窗體上的“啟動”按鈕后,便啟動了服務器進程。為了使用Socket對象和Thread對象,在代碼文件中加入名字空間、..Socket、System..Threading的引用。

      在服務器端使用了多線程,每個用戶通過一個單獨的線程進行連接,當服務器開始運行時,它就啟動一個線程等待客戶連接(在方法StartListen()中實現)。當接收到一個請求時,服務器立即啟動一個新的線程來處理和該客戶端的信息交互(在方法ServiceClient()中實現)。自定義了一個Client類,它用于保存每個當前在線用戶的用戶名和與服務器連接的Socket對象。當Socket連接一旦建立,就馬上將其保存在一個Client對象中,以便讓每個用戶有自己的Socket,以后可以對不同用戶的Socket對象進行操作,實現與客戶端的數據交換。

      在服務器窗口中,單擊“啟動”按鈕,進入btnStart_Click處理程序。在該處理程序中,創建了一個服務器套接字并且監聽本機IP地址中的一個指定的端口,同時啟動一個線程等待用戶連接(在方法StartListen()中實現)。StartListen()方法是在新的進程中進行的操作,它主要用于當接收到一個客戶端請求時,確認與客戶端的連接,并且立即啟動一個新的線程來處理和該客戶端的信息交互(在方法ServiceClient()中實現)。ServiceClient()方法用于和客戶端進行數據通信,包括接收客戶端的請求,根據不同的請求命令,執行相應的操作,并將處理結果返回到客戶端,此方法完成了服務器的主要的工作。SendToClient()方法實現了向客戶端發送命令請求的功能,它利用不同用戶保存的Socket對象,向對應的用戶發送命令請求。GetUserList()方法實現了獲取當前在線用戶列表的功能,它通過對clients數組的遍歷,獲取當前在線用戶的用戶名,用字符串發回。

      2.客戶端的實現

      客戶端是一個Windows窗體應用程序,命名為ChatClient。當運行客戶端程序時,首先進入登錄界面,輸入用戶名,單擊“登錄”按鈕后,進入交談主窗口(命名為Login),在主窗口中可以向服務器發送信息,同時可以接收從服務器返回的信息。

      (1)Login.cs文件的實現

      Login.cs文件是登錄窗體的代碼文件,為了使用Socket對象,在代碼文件中加入名字空間、..Socket的引用,它主要實現了創建客戶端套接字同時連接到服務器指定端口,把用戶名和創建的客戶端套接字傳遞給ChatClient窗體。

      (2)ChatClient.cs文件的實現

      ChatClient.cs文件是客戶端窗體(ChatClient)的代碼文件,在該文件中,首先獲得與服務器通信的流通道,在用戶登錄后,向服務器發送CONN命令以此說明有新的用戶進入交談室,服務器將返回所有的當前在線用戶的呢稱,選擇不同的人,就可以與他們交談了,如果選中“悄悄話”復選框,則具有私人交談的功能。

      當加載ChatClient窗體時,便會進入ChatClientForm_Load處理程序。在該處理程序中,首先顯示用戶登錄窗口。如果登錄成功,那么獲取與服務器的連接并得到與服務器數據交互的流通道,向服務器發送CONN請求命令,同時啟動一個新的線程用于響應從服務器發回的信息(在方法ServerResponse()中實現)。ServerResponse()方法用于和服務器進行數據通信,主要是接收從服務器發回的信息,根據不同的命令,執行相應的操作。當需要進行“私人交談”時,便進入priCheckBox_CheckedChanged處理程序。在該處理程序中主要對privatemode的布爾屬性進行設置。當需要發送信息時,便會進入btnSend_Click處理程序。在該處理程序中,如果privatemode的布爾屬性值為false(不是私人交談),將CHAT命令發送給服務器;否則(為私人交談),將PRIV命令發送給服務器。當用戶需要離開時,便進入了btnExit_Click處理程序。在該處理程序中,將EXIT命令發送給服務器,停止交談。

      六、結束語

      使用Socket編程的關鍵技術可以方便地實現網上交談工具。利用Socket可以創建服務器程序和客戶端程序。服務器監聽本機IP地址中的一個指定的端口,建立與客戶端的連接并啟動一個新的線程來處理客戶端的所有請求,執行相應的操作,并將處理結果返回給該客戶端。客戶端向遠程服務器發送連接請求,得到服務器程序的確認后,建立與服務器的連接,并獲得與服務器交互的流通道并通過網絡流通道與服務器進行數據通信。我們可以進一步進行功能完善,進而編譯成組件應用到自己的應用程序中,開發更完美的通信軟件。

      參考文獻:

      [1]譚桂華魏亮等:VisualC#高級編程范例.北京:清華大學出版社,2004年5月

      [2]呂偉臣霍言等:VisualC#2005入門與提高.北京:清華大學出版社,2006年9月

      [3]鄒建峰周山峰等:C#企業級開發案例精解.北京:人民郵電出版社,2006年1月

      主站蜘蛛池模板: 少妇激情一区二区三区视频| 加勒比无码人妻东京热| julia无码中文字幕一区| 91高清免费国产自产拍| 国产日产免费高清欧美一区| 国产高清一区二区不卡| 色爱av综合网国产精品| 国产普通话刺激视频在线播放| 久久精品国内一区二区三区| 精品国产成人A区在线观看| 在线午夜精品自拍小视频| 爱性久久久久久久久| 国产精品人伦一区二区三| 成人拍拍拍无遮挡免费视频| 色综合天天综合天天更新| 成人又黄又爽又色的视频| 色综合中文字幕色综合激情| 制服丝袜美腿一区二区| 成人一区二区三区久久精品| 影音先锋2020色资源网| 国产激情一区二区三区四区| 国产a网站| 国产精品一码二码三码| 人成午夜大片免费视频77777| 制服 丝袜 亚洲 中文 综合| 激情在线网| 久久婷婷五月综合97色直播| 日韩秘 无码一区二区三区| 99在线精品国自产拍中文字幕| 国产一区二区三区小说 | 亚在线观看免费视频入口| 国产精品自拍一二三四区| 成人国产乱对白在线观看| 亚洲成人av在线系列| 亚洲中文字字幕精品乱码| 亚洲欧美激情在线一区| 国产性三级高清在线观看| 精品人妻免费看一区二区三区| 被拉到野外强要好爽| 国产精品人一区二区三区| 精品一区二区三区在线成人|