vb Winsock控件

   如果有多台计算机,那就稍微复杂一些,客户端程序可以不做改动,而服务器端程序需要略做改动:

Private   sub   sckserver_connectrequest(Index   as   Integer,Byval   requestid   as   long)    
   
    dim   sip   as   string    
   
    dim   I   as   integer    
   
    sip=sckserver(0).RemoteHostIP   '获得登录者的IP地址    
   
    I=1    
   
    Do   while   I<=sckserver.ubound   '检查是否已经有该地址的记录    
   
    If   sckserver(I).RemoteHostIP=sip   then   '如有,不必加载新的控件    
   
    Sckserver(I).Accept   requestid    
   
    Exit   sub    
   
    End   if    
   
    I=I+1    
   
    Loop    
   
    Load   sckserver(I)   '否则,加载新的控件    
   
    Scksrver(I).accept   requestID    
   
    End   sub    
   
    注意到:以上的信息交谈实际上都发生在客户机与服务器之间,如果要做成<nobr oncontextmenu="return false;" onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">聊天</nobr>室那样,每个人的话都可以被别人“听到”,那就要在服务器端的DataArrival事件中,把接收到的客户机传来的数据,转发给所有客户机即可。    
   
    其循环转发信息的代码如下:    
   
    For   I=1   to   sckserver.count    
   
    if   sckserver(I).state<>sckclosed   then    
   
    sckserver(I).SendData   sdata    
   
    end   if    
   
    next   I    

你可能感兴趣的:(vb)