WEB开发网
开发学院软件开发VC 基于套接字通信的远程截屏显示与控制技术 阅读

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

 2008-05-31 21:39:12 来源:WEB开发网   
核心提示: bind(sktConnect,(struct sockaddr far *)&sockaddrin,sizeof(sockaddrin));服务端监听网络:socket利用listen函数设置状态位,用来检测是否有到来的连接请求,基于套接字通信的远程截屏显示与控制技术(2),然后调用ac

bind(sktConnect,(struct sockaddr far *)&sockaddrin,sizeof(sockaddrin));

服务端监听网络:socket利用listen函数设置状态位,用来检测是否有到来的连接请求,然后调用accept函数,准备接收客户端连接信号,无连接请求时,服务进程被阻塞;

listen(sktConnect,1);

sktClient=accept(sktConnect,(struct sockaddr far *)&sockaddrin,& sockaddrlen);

初始化与创建客户端Winsock:首先利用AfxSocketInit函数判断参数lpwsaData是否为空,从而确定是否调用WSAStartup函数来填充WSADATA结构,随后同样调用socket函数创建客户端的套接字,给客户端Sockaddr_in结构赋值,地址类型和端口号与服务端相同;

套接字选项设置:使用setsockopt函数设置套接字选项,比如发送或者接收的超时设置,缓冲区的容量设置,使用ioctlsocket函数设置socket的I/O模式等;

int ret=ioctlsocket(sktClient,FIONBIO,(unsigned long*)&ul);

双方建立连接:客户端调用connect函数向服务端发出连接请求,当连接请求到来时,被阻塞服务端的accept函数生成一个新的字节流套接字,返回客户端Sockaddr_in结构变量,用带有客户端地址的套接字与客户端进行连接,然后向客户端返回接收信号;

connect(sktClient,(const struct sockaddr *)&sockaddrin,sizeof (sockaddrin));

收发数据:一旦客户端套接字接收到来自服务端的接受信号,则表示双方已经实现连接,任何一方均可使用Send/Write函数和Recv/Read函数向对方发送或者接收数据;

send(sktClient,chrSend,10,0);recv(sktClient,chrReceive,10,0);

关闭套接字与winsock注销:服务端和客户端可以通过调用closesocket函数关闭套接字上的所有发送和接收操作,撤销套接字并且中断连接。同时,winsock服务的动态链接库在使用结束后,应用程序必须调用WSACleanup函数将其注销,并释放分配的资源。

上一页  1 2 3 4 5 6  下一页

Tags:基于 套接字 通信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接