| 
				 二、客户端与服务器通信 
   服务器要控制多个客户端,如实施远程关机、发送命令等,必须通过网络通信。设计中用VB6.0中的Winsock控件来实现网络通信。服务器要可靠的与客户端通信,同时要在服务器管理软件中实时地显示连接状态,只有确保连接后才能够实现网络控制,所以采用TCP/IP协议建立网络连接。 
   计算机通信端口从1~65535,设计中通信端口从1000开始,服务器一个端口对一个远程计算机进行TCP/IP通信,例如计算机1000申请向服务器通信端口1000申请TCP/IP连接,服务器设计的每个通信端口都处于侦听状态,只要有远程计算机申请就连接,其连接示意图如图2所示。 
  
 
  
   
         图2 服务器与客户端TCP/IP连接示意图 
服务器端侦听代码: 
sckserver(0).LocalPort = 1000   '设置服务器监听端口 
sckserver(0).Listen            '启动监听 
服务器端接收连接代码: 
Private Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long) 
If sckserver(Index).state <> 0 Then 
   sckserver(Index).Close      '如申请连接的服务器端口没关,则先关闭此端口 
End If 
sckserver(Index).Accept requested   '对应服务器端口接收客户端申请连接 
sckserver(Index).SendData "你已经与服务器建立连接!"  '向客户端回发已连接成功的信号 
End Sub 
客户端申请连接代码: 
sckclient.RemoteHost = remoteIP   '设置客户端的IP地址或计算机名 
sckclient.RemotePort = 1000  '设置需要连接的远程服务器端口 
sckclient.Connect         '连接远程服务器 
发送数据采用Winsock的SendData方法,通过上述代码可以进行网络通信。 
三、远程关机 
1.远程关机的设计思想 
在TCP/IP 网络协议的C/S结构中,在一个计算机上装上服务器端的软件(控制方通过端口给受控方的端口发送数据包),在受控的另外的计算机上装上客户端的软件(用于侦听端口并接收数据包),通过TCP/IP 网络协议来进行网络通信。建立网络连接后,如果要关闭客户端计算机,只要向客户端发送“关机”命令,当客户端收到该命令后调用系统中的关机函数,就可完成关机操作。假设需要控制的计算机的IP地址为192.168.45.68,服务器端的主要程序代码如下: 
remoteIP = "192.168.45.68" '设置需要连接的IP地址 
sckclient.RemoteHost = remoteIP 
sckclient.RemotePort = 1001  '设置需要连接的远程端口 
sckclient.Connect         '连接远程计算机 
连接上之后,如果要求关闭远程计算机,发送“关机”字符串命令: 
Private Sub sckserver_Connect() 
sckserver.SendData "关机" End Sub			
				 |