Clinet
Dim Tekens(10) As Byte
Dim Aantal As Integer
Dim Character As Byte
Dim Result As String
Dim Result2 As String
DoEvents
Do
DoEvents
Aantal = recv(Sock, Tekens(0), 10, 0) 这行报错,说类型不匹配
If (Aantal > 0) Then
Character = Tekens
If (Asc(Character) >= Asc(" ")) Then
Result = Result & Character
End If
Else
Result = ""
Exit Do
End If
If Character = "" Then
Character = Chr(13)
End If
Loop While ((Aantal > 0) And (Asc(Character) <> 13))
Server
Dim RC As Integer
Dim StartupData As WSADataType
Dim IPAddr As Long
Dim MsgBuffer As String * 2048
Dim Regel As String
Dim Regel(10) As Byte
Dim RegelUit As String
Dim Bytes As Integer
Dim Character As String
Dim FromAddr As String
Dim FromName As String
Dim ToAddr As String
Dim ToName As String
Dim MustStop As Boolean
Dim xx As Integer
For xx = 0 To 9
Regel(xx) = &HF
Next
Socket2 = accept(Sock, SocketBuffer, Len(SocketBuffer))
DoEvents
If Socket2 > 0 Then comment out this line for Code for multiple connections
Timer1.Interval = 65000
Timer2.Interval = 500
Print "socket is Socket2"
If Socket2 < 1 Then
closesocket Sock
RC = WSACleanup()
Exit Sub
End If
RC = send(Socket2, Regel(0), 10, 0)
RC = send(Socket2, Regel(0), 10, 0)
End If
程序的思路是 服务端发送一串 二进制数据,客户端接受。
主要是 send函数 和recv函数 ,这两个函数里面到底应该怎么放什么样的参数才能达到发送二进制数据和接受二进制数据的效果。send(Socket2, Regel(0), 10, 0)我老是认为第三个参数10是不对的~~~~
还请大家指导一下。
用法没有错。
send(socket,字节开始,长度,0&)
你可以用一个long变量设置为10,然后再传递。
你直接 0,10是不行的,是和vc接口吧,你要把它像楼上说的变成long变量再传
因为你在vb中写一个 0或者10他是占2个字节的,