文章插图
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协议族中任何常用的协议 。控制指令都是由控制端程序产生并发送到被控端的 。每一个控制端发送到被控端的第一个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个小技巧
- 黑骑士卡有什么用
- 用啥和面能成黑色
- 糖蜜是啥
- 鄱阳湖有哪些候鸟
- 家里有黑色硬壳小虫子是什么虫
- 迷迭香根部变黑怎么办
- 梦见自己的车是黑色暗示什么 梦见自己的车是黑色的含义
- 广式黑金芝麻月饼的做法 制作黑金芝麻月饼的方法
- 苹果手机白屏黑苹果开不了机怎么办