Foros del Web » Programación para mayores de 30 ;) » Programación General »

Socket por UDP...

Estas en el tema de Socket por UDP... en el foro de Programación General en Foros del Web. hola tengo una aplicacion cliente-servidor y lo que quiero hacer es que cuando el servidor este corriendo, envia al cliente un mensaje que en este ...
  #1 (permalink)  
Antiguo 10/12/2003, 13:39
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
Socket por UDP...

hola tengo una aplicacion cliente-servidor y lo que quiero hacer es que cuando el servidor este corriendo, envia al cliente un mensaje que en este caso sera la ip del pc que tiene al servidor..
lo estoy tratando de hacer asi...

este es el code del servidor...

SocketUDP.RemoteHost = "255.255.255.255"
SocketUDP.LocalPort = 101
SocketUDP.RemotePort = 101
SocketUDP.Protocol = sckUDPProtocol

Dim EnviarUDP As String
EnviarUDP = "Server!" & SocketUDP.LocalIP
Debug.Print "Enviando: " & EnviarUDP
SocketUDP.SendData EnviarUDP

pero en el cliente no se que poner pq no me r4ecibe lo que esta renviando el servido...

como lo puedo hacer?

lo estaoy tratando asi:

en el form load

SocketUDP.RemoteHost = "255.255.255.255"
SocketUDP.LocalPort = 101
SocketUDP.RemotePort = 101
SocketUDP.Protocol = sckUDPProtocol

y despues esto

Private Sub Socketudp_DataArrival(ByVal bytesTotal As Long)

On Error GoTo error
Dim datos As String
SocketUDP.GetData datos
udp.Text = udp.Text + datos & vbCrLf

error:
MsgBox "error"
End Sub

pero no pasa nada, la idea es que apenas corra el cliente me de el mensaje que me esta enviando el servidor..


salu2
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 10/12/2003, 14:26
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 21 años
Puntos: 0
la comunicación con UDP es un tanto diferente que TCP, examina el siguiente código:

'aplicacion que recibe la información

private sub EsperarInformacion()

WinSock1.Bind puerto_a_usar

end sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data1 As String

Winsock1.GetData data1

end sub

'aplición que envía el mensaje

private sub EnviarInfo()

WinSock1.RemotePort = puerto_a_usar
WinSock1.RemoteHost = ip_destino
WinSock1.SendData cadena_de_texto

end sub

'-----------------------

fijate bien que en Bind no usé el signo =

Ojo, que la aplicacion cliente no puede estar en el mismo lugar que el servidor porque da error (se puede evitar pero no viene al caso)
No podés establecer en forma conjunta la propiedad Bind y LocalPort con el mismo número.

saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #3 (permalink)  
Antiguo 10/12/2003, 15:33
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 5 meses
Puntos: 5
gracias perolo de bind me da error, la dea es testaearlo en mi pc, pq de lo contrario no sabre si funciona, pq no estoy conectado en red...

alguna otra sugerencia.

salu2
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #4 (permalink)  
Antiguo 11/12/2003, 11:41
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 21 años
Puntos: 0
no hay otro modo de usar UDP.

podés probarlo en tu PC, mientras que el BIND y LOCALPORT no coincidan en ninguna aplicación entre sí.
si no estableces la propiedad LOCALPORT va a funcionar bien.

ahora si querés que tanto el cliente como el servidor envien y reciban lo que tenés que hacer es una cosa así:

Cliente

Winsock.Bind =8555
Winsock.RemotePort = 8556

Servidor

Winsock.Bind = 8556
Winsock.RemotePort =8555

saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:53.