你的位置:pcMing工作室 >> 资讯 >> 编程开发 >> C++编程 >> 详细内容 在线投稿

基于套接字通信的远程截屏显示与控制技术

排行榜 收藏 打印 发给朋友 举报 来源: 互联网   发布者:未知
热度2221票  浏览468次 【共0条评论】【我要评论 时间:2010年4月08日 20:22

tge?e:Pn%RQ0

1TNc*F;WGqM0pcMing工作室9g6hcF ^1@|
pcMing工作室h c H$lpC;IM
1 双机Socket网络通信[2]pcMing工作室[{_M-WMy
pcMing工作室4o^MC$T$x(Z
初始化服务端Socket:在调用Socket前先要初始化,即加载相应版本的DLL,通过调用WSAStartup函数,将加载成功的Socket库版本的相关信息填在LPWSADATA结构中;
T$g rx gEc@4W-zmO0WSADATA lpWSAData;pcMing工作室3VQj9K6t sS
WSAStartup(MAKEWORD(1,1),&lpWSAData);
&Y#c`8as5h q6b0创建服务端Socket:完成初始化之后,调用socket函数创建一个套接字,返回套接字句柄,在其后通信中始终用来标识套接字,若调用失败则返回INVALID_SOCKET;
VJ.qEkF{ W QBg0SOCKET sktConnect=socket(AF_INET,SOCK_STREAM,0);pcMing工作室GlH["R}
绑定服务端地址:在为某种特定协议创建了套接字后,就用bind函数将套接字绑定到一个本机地址,其类型是sockaddr,用于指明套接字绑定地址,包括IP地址与端口号;pcMing工作室UVW-CjI(AmTZ
bind(sktConnect,(struct sockaddr far *)&sockaddrin,sizeof(sockaddrin));
\6C^.}5Ji[4sU0服务端监听网络:socket利用listen函数设置状态位,用来检测是否有到来的连接请求,然后调用accept函数,准备接收客户端连接信号,无连接请求时,服务进程被阻塞;
_6s l t7q U0pcMing工作室;r B-W.U,WIV0N
listen(sktConnect,1);
5k i)xTN.X-~0sktClient=accept(sktConnect,(struct sockaddr far *)&sockaddrin,& sockaddrlen);pcMing工作室,K,Fu%lR Yr R

!VhB-fo'X0初始化与创建客户端Winsock:首先利用AfxSocketInit函数判断参数lpwsaData是否为空,从而确定是否调用WSAStartup函数来填充WSADATA结构,随后同样调用socket函数创建客户端的套接字,给客户端Sockaddr_in结构赋值,地址类型和端口号与服务端相同;pcMing工作室0]?-V3liW
套接字选项设置:使用setsockopt函数设置套接字选项,比如发送或者接收的超时设置,缓冲区的容量设置,使用ioctlsocket函数设置socket的I/O模式等;
[Ua.w{v"bnN W0
yl1plw O t&F_0int ret=ioctlsocket(sktClient,FIONBIO,(unsigned long*)&ul);
#r0Z;of,}0pcMing工作室~1IK"S,j"q;IoJ
双方建立连接:客户端调用connect函数向服务端发出连接请求,当连接请求到来时,被阻塞服务端的accept函数生成一个新的字节流套接字,返回客户端Sockaddr_in结构变量,用带有客户端地址的套接字与客户端进行连接,然后向客户端返回接收信号;
:L aS3SbcM0l!H0connect(sktClient,(const struct sockaddr *)&sockaddrin,sizeof (sockaddrin));pcMing工作室e0\,DD)P\PW8P
收发数据:一旦客户端套接字接收到来自服务端的接受信号,则表示双方已经实现连接,任何一方均可使用Send/Write函数和Recv/Read函数向对方发送或者接收数据;pcMing工作室P zoUT I3sf
send(sktClient,chrSend,10,0);recv(sktClient,chrReceive,10,0);pcMing工作室 h@f)b3w\
pcMing工作室Rea-jXnC(Sd O
关闭套接字与winsock注销:服务端和客户端可以通过调用closesocket函数关闭套接字上的所有发送和接收操作,撤销套接字并且中断连接。同时,winsock服务的动态链接库在使用结束后,应用程序必须调用WSACleanup函数将其注销,并释放分配的资源。
d:o UO'ovs3`Z0Winsock套接字主要工作流程如图1,①~⑩标识网络数据交换顺序。
+z%kj b;]!w0
R.m.L@}'J0pcMing工作室)H"J]m$?
pcMing工作室0@tJ W)lz
图1 Winsock套接字主要工作流程
z@0DO1}xC0

'` Re-v'mx!R0 pcMing工作室 V y(l+`9z

顶:131 踩:123
对本文中的事件或人物打分:
当前平均分:-0.33 (654次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.07 (676次打分)
【已经有637人表态】
87票
感动
90票
路过
73票
高兴
92票
难过
72票
搞笑
70票
愤怒
78票
无聊
75票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源