服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc
C局域網聊天工具消息推送實現思路與源碼
C#局域網聊天工具怎么實現?
網絡通訊編程的基礎便是協議,信息的發送常用的協議有面向連接的TCP協議,以及不面向連接的UDP協議TCP:TransmissionControlProtocol傳輸控制協議,其是一種面向連接的、可靠的字節流服務。面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機說“喂”,然后才說明是誰。
UDP:UserDatagramProtocol用戶數據報協議(RFC768),UDP傳送數據前并不與對方建立連接,即UDP是無連接的,在傳輸數據前,發送方和接收方相互交換信息使雙方同步。系統也要定義自己的通訊協議,來完成一些系統的功能,如用戶上,下線的通知,都要定義自己的通訊協議來完成相應的功能!也可以稱這種自定義的協議為“命令”.
下面以著名的飛鴿傳書為例,說明其自定義的協議(命令)
IPMSG_NOOPERATION不進行任何操作
IPMSG_BR_ENTRY用戶上線
IPMSG_BR_EXIT用戶退出
IPMSG_ANSENTRY通報在線
IPMSG_SENDMSG發送消息
IPMSG_RECVMSG通報收到消息
IPMSG_GETFILEDATA請求通過TCP傳輸文件
IPMSG_RELEASEFILES停止接收文件
IPMSG_GETDIRFILES請求傳輸文件夾以“IPMSG_BR_ENTRY用戶上線”和“IPMSG_ANSENTRY通報在線”為例說明命令處理流程:當程序啟動時,命令IPMSG_BR_ENTRY被廣播到網絡中,向所有在線的用戶提示一個新用戶的到達(即表示“我來了”);所有在線用戶將把該新上線用戶添加到自己的用戶列表中,并向該新上線用戶發送IPMSG_ANSENTRY命令(即表示“我在線”);該新上線用戶接收到IPMSG_ANSENTRY命令后即將在線用戶添加到自己的用戶列表中。PS:根據本系統的特征,可以在聊天部分采用UDP協議,在文件傳輸,視頻,語音功能上采用TCP協議
程序啟動就要發送廣播消息,如何發送廣播消息,以及C#如何實現廣播.第一部分.什么是廣播地址,以及廣播地址怎么計算
1.1廣播地址是什么?
主機號全為1,用于向一個網絡內的所有主機發送信息的IP地址.如:受限的廣播地址是55。該地址用于主機配置過程中IP數據報的目的地址,此時,主機可能還不知道它所在網絡的網絡掩碼,甚至連它的IP地址也不知道。在任何情況下,路由器都不轉發目的地址為受限的廣播地址的數據報,這樣的數據報僅出現在本地網絡中。
PS:一般無特殊要求廣播地址選擇55即可.
1.2計算方法
首先計算網絡地址=IP地址邏輯與(&)子網掩碼
先把IP,子網掩碼轉為2進制,然后進行邏輯與運算,得出網絡地址
例:
IP子網掩碼
IP轉二進1010010000000011
子網掩1111111100000000
與運算1010010000000000
這就是網絡地址,其中子網掩碼全1對應為網絡號,全0對應的是主機號,即對應的網絡號為192.168,主機號為0.0.將網絡地址主機部分全取反后得到的地址便是廣播地址:
廣播地1010010011111111
換成10進制則為第二部分.C#利用UDP協議如何實現廣播2.1如何實現UDP廣播,直接舉例說明:button1_Click時使用了UDP廣播向外發送了數據RecData()在后臺接受UDP協議的消息//UDP通過廣播實現群發功能namespace BroadcastExample{publiclass Form1:Form{delegate void AppendStringCallback(stringtext);AppendStringCallback appendstringcallback;//使用的接收端口51008//端口號///private int port=51008;//udp連接對象///private UdpClient udpclient;public Form1(){InitializeComponent();appendstringcallback = new AppendStringCallback(AppendString);}//委托對象的處理過程//
總結
以上是生活随笔為你收集整理的服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax formdata提交上传,关于
- 下一篇: tp设置打印机虚拟服务器,tp打印机服务