Tengo un problema, yo estaba haciendo un programita que le envie a mi NOTBUK que teclas estoy apretando (Arriba,Abajo,Derecha,Izquierda) probé poniendo la IP de mi notbuk y no funciona. Después puse la ip de mi pc fija y tampoco anda y más tarde puse 127.0.0.1 y tampoco :S.
Les dejo los Codigos del cliente y Servidor:
CLIENTE:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vbkey As Long) As Integer
Private Sub Form_Load()
With Winsock1
.Close
.RemoteHost = "127.0.0.1" ' También probe poniendo "localhost"
.RemotePort = "1660"
.Connect
End With
Winsock1.SendData Label1
End Sub
Private Sub Timer1_timer()
Dim i As Integer
'
For i = 8 To 222
x = GetAsyncKeyState(i)
If x = -32767 Then
Select Case i
Case vbKeyLeft: Label1.Caption = "Izquierda"
Case vbKeyUp: Label1.Caption = "Arriba "
Case vbKeyDown: Label1.Caption = "Abajo"
Case vbKeyRight: Label1.Caption = "Derecha"
End Select
End If
Next
End Sub
SERVIDOR:
Private Sub Form_Load()
With Winsock1
.Close
.LocalPort = "1660"
.Listen
End With
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim dat As String
Winsock1.GetData dat, vbString
Label1 = dat & vbCrLf
End Sub
Espero que me puedan ayudar.
If X <> 0 then ....
eso debe ser
Donde kedo el winsock1.Accept requestID ???? como van a poder interactuar el cliente y el servidor
Se ve muy claramente XD prueba con este codigo
Private Sub Timer1_timer()
Dim i As Integer
'
For i = 8 To 222
x = GetAsyncKeyState(i)
If x = -32767 Then
Select Case i
Case vbKeyLeft: Label1.Caption = "Izquierda"
Case vbKeyUp: Label1.Caption = "Arriba "
Case vbKeyDown: Label1.Caption = "Abajo"
Case vbKeyRight: Label1.Caption = "Derecha"
End Select
End If
Next
winsock1.senddata Label1.caption
End Sub
No tengo ni idea de como funciona esa api, pienso que te devuelve en la variable que le pasas un valor correspondiente a una tecla, pero entonces, para que pones el bucle??
cuando se invoca esta api, se le pasa como argumento la tecla virtual para corroborar si esta presionada, en caso de que sea asi, te devuelve un valor (no se cual).
el bucle lo hace para ir probando tecla por tecla a ver si esta presionada.
en mi opinion el interval del timer ponlo en 1
http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx
Si la api funciona como dices tendras que comprobar el valor que retorna la api y si el valor indica que esa tecla esta presionada enviarlo por el socket