Msrec为MSCOM控件,现在要用WINSOCKET控件,属性protocol为TCP ,代码如何修改?
Private Sub Msrec_OnComm() 
On Error GoTo Sendfast 
Select Case Msrec.CommEvent 
Case comEvReceive '只要收到一个字节就触发此事件 
DC = 0 
'Msrec.RThreshold = 0 '停止触发此事件以防止数据处理过程被意外中断 
If (IDf = False) And (IDbg = 0) Then '还未建立连接。 
   
    Inst = Msrec.Input '读入一个字节到临时变量 
    Ins(0) = Inst(0) '转存为字节型变量 
    InsD = Ins(0) '赋值给整型变量,此时数据为十进制---如:收到数据为A0,此变量为160。     If InsD = 2 Then '判断是否为起始符号 
    BakD(0) = &H10 '发送确认信号,以驱动发送方发送有效数据 
    Msrec.Output = BakD 
     
    'Text9.Text = Timer() 
     
    'FrmMe.Tmt.Enabled = True  '暂用代码 
     
    IDbg = 1 
    ElseIf InsD  <> 2 Then 
    Msrec.InBufferCount = 0 '如果缓存中有数据但由于意外断开,将清零以重新接收 
    End If '报文开始 
     
End If '判断连接 
'TmL.Enabled = True 
If (Msrec.InBufferCount > 10) And (IDf = False) And (IDbg = 1) Then IDf = True '说明一次收到很多数据,已经建立连接,有大量数据送至 Do While (Msrec.InBufferCount > 0) And (IDf = True) 
  'If IDbg = 1 Then Text9.Text = Timer() 
   
  Inst = Msrec.Input '读入一个字节到临时变量 
  Ins(0) = Inst(0) '转存为字节型变量 
  InsD = Ins(0) '赋值给整型变量,此时数据为十进制---如:收到数据为A0,此变量为160。 

解决方案 »

  1.   

    流程大概是这样的:
    服务器先开始监听,客户端设置连接参数,开始绑定进行连接
    建定连接后,客户端发送数据,触发服务器上socket事件,接收数据
    退出时,断开连接
      

  2.   

    因为我这个程序是装在客户端的,需要把不要的信息过滤,那过滤代码放在WINSOCKET的哪个事件下?WINSOCKET与MSCOM从缓冲区接受数据的方式有许多不同,我在MSCOM_ONCOMM的源代码里都进行了注释,我想尽可能修改代码,直接能用WINSOCKET代理MSCOM的最好.有没有方法用WINSOCKET一个一个字节接受信息的?请高手指教,谢谢
      

  3.   

    这可是两个不同的东西呀,使用MSCOM有什么问题?