
WinSock為我們提供了Windows環境下網絡通訊的編程接口,鑒于Windows消息驅動的特點,這里主要采用異步選擇機制 。異步選擇函數WSAAsyneSeleet0允許應用程序提名一個或多個感興趣的網絡事件,如FD— READ、FD W RITE、FD_ CONNECT、FD— ACCEPT等等代表的網絡事件.當被提名的網絡事件發生時,Windows應用程序的窗口函數將收到一個消息 。這樣就可以實現事件驅動了 。1.建立TCP連接服務器端首先通過調用socketO建立一個套接字,然后調用李建軍Li,JianjunbindO將該套接字和本地網絡地址綁定在一起,再調用listen0使套接字做好監聽的準備.并規定它的請求隊列的長度.之后就可以調用accept0來接受連接 。Ss=socket(AF—INET,SOCK_STREAM,O);SA.sin_ family=AF_INET;SA、sin_ port=htons(atoi(szPort));,,監聽端口SA.sin_addr.S— addr=inet_ addr(szlp)‖IP地址 。bind(Ss,(struct sockaddr )&SA,sizeof(SA));W SAAsyncSelect Ss,hW,W M— USER +100,FD— ACCEPT JFD— READIFD_CLOSE);listen(Ss,100);客戶端在建立套接字后可以調用connect0和服務器端建立連接 。Cs=socket(PF—INET,SOCK.sTREAM,O);SA.sin_ family= PFJNET;SA.sin_ port=htons(atoi(szPort));//J]~務器端端口 。SA.sin_ addr.s_ addr=inet_ addr(szlp)‖服務器端IP地址 。d=sizeOf(SA);connect(Cs,(struct sockaddr )&SA,d);WSAAsyncSelect (Cs,hW,WM—USER +100,FD—CONNECT IFD— —READIFD— —CLOSE);可以看出,服務器端和客戶端都使用wSAAsyncSelect0函數為自己的網絡事件掛接了一個Windows消息wM—USER+100 。同時也看到要建立連接,客戶端必須知道服務器端的監聽端口和IP地址2.控制指令定義這里的控制指令是服務器端和客戶端私自約定的.并沒有使用TCP~P協議族中任何常用的協議 ??刂浦噶疃际怯煽刂贫顺绦虍a生并發送到被控端的 。每一個控制端發送到被控端的第一個8bit數據我們規定它為控制指令,這樣就可以定義最多256個控制指令 。#define USER_ LISTDRIVER Oxll,/列被控端磁盤目錄#define USER— RUN 0x22,/i重程運行被控端程序3.控制端程序設計下面為控制端發送控制指令的程序段,這里僅以“列被控端磁盤目錄”和“遠程運行被控端程序”為例來作介紹 。ease W M_ COMMAND:switeh(wParam){case BUTTON1:,/列被控端磁盤目錄controllD= L ‖建立操作標識L(tist)szBuff[0]=USER_LISTDRIVER;//置入控制指令send(s,szBuf,1’0)‖通過己連接的套接字S發送到被控端break;ease BUTTON2:,/運行被控端程序eontrollD= R 建立操作標識R(run)szBuff[0]=USER_RUN;//置入控制指令
【黑鴿子破解版】
猜你喜歡
- 消除黑眼圈的小方法 消除黑眼圈的4個小技巧
- 黑騎士卡有什么用
- 用啥和面能成黑色
- 糖蜜是啥
- 鄱陽湖有哪些候鳥
- 家里有黑色硬殼小蟲子是什么蟲
- 迷迭香根部變黑怎么辦
- 夢見自己的車是黑色暗示什么 夢見自己的車是黑色的含義
- 廣式黑金芝麻月餅的做法 制作黑金芝麻月餅的方法
- 蘋果手機白屏黑蘋果開不了機怎么辦
