¿Cómo utilizar el protocolo UDP para implementar un programa de chat simple?
Uso del protocolo UDP para escribir programas de chat en VB
El protocolo UDP es un protocolo sin conexión y la transmisión de datos entre dos computadoras es similar a Mail: Mensajes se envían de una computadora a otra, pero no existe una conexión clara entre las dos.
Dado que el protocolo UDP no requiere una conexión explícita, los datos deben enviarse entre dos controles Winsock. La clave es completar los siguientes tres pasos:
1. Establezca la propiedad RemoteHost con el nombre de la otra computadora.
2. Establezca la propiedad RemotePort en la propiedad LocalPort del segundo control.
3. Llame al método Bind y especifique el LocalPort utilizado.
Debido a que el estado de las dos computadoras puede considerarse "peer-to-peer", esta aplicación también se denomina aplicación peer-to-peer.
A continuación crearás una aplicación de chat a través de la cual dos personas podrán mantener una conversación en tiempo real. Siga los pasos a continuación para realizar:
1. Cree un nuevo proyecto EXE estándar. Cambie el nombre del formulario predeterminado a frmPeerA y cambie el título del formulario a "Peer A".
2. Coloque un control Winsock en el formulario y asígnele el nombre udpPeerA. En la página Propiedades, haga clic en Protocolo y modifique el protocolo a UDPProtocol.
3. Agregue dos controles TextBox al formulario. Nombra al primero txtSend y al segundo txtOutput.
4. Agregue el siguiente código al formulario.
Private Sub Form_Load()
′El nombre del control es udpPeerA
Con udpPeerA
′Importante: El valor de RemoteHost Lo que debe modificarse es el nombre de la computadora de la otra parte.
RemoteHost= ″PeerB″
RemotePort = 1001 ′El número de puerto de la conexión.
Bind 1002 'Enlazar al puerto local.
Terminar con
frmPeerB.Show′ muestra el segundo formulario.
End Sub
Private Sub txtSend_Change()
'Envía texto inmediatamente a medida que lo escribes.
udpPeerA.SendData txtSend.Text
End Sub
Private Sub udpPeerA_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerA.GetData strData
txtOutput.Text = strData
End Sub
Para crear un segundo Para un socio UDP, siga los pasos a continuación:
1. Agregue un formulario estándar al proyecto, cambie el nombre del formulario a frmPeerB y cambie el título del formulario a "Peer B".
2. Coloque un control Winsock en el formulario y asígnele el nombre udpPeerB.
3. En la página Propiedades, haga clic en Protocolo y cambie el protocolo a UDPProtocol.
4. Agregue dos controles TextBox al formulario. Nombra al primero txtSend y al segundo txtOutput.
5. Agregue el siguiente código al formulario
Private Sub Form_Load()
′El nombre del control es udpPeerB.
Con udpPeerB
'Importante: El valor de RemoteHost debe cambiarse por el nombre de la computadora de la otra parte.
RemoteHost= ″PeerA″
RemotePort = 1002 ′El puerto al que conectarse.
Bind 1001 'Enlazar al puerto local.
Terminar con
End Sub
Private Sub txtSend_Change()
′ Envía texto inmediatamente después de escribir.
udpPeerB.SendData txtSend.Text
End Sub
Private Sub udpPeerB_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerB.GetData strData
txtOutput.Text = strData
End Sub
Ejecute el proyecto, luego escriba algo de texto en el cuadro de texto txtSend de los dos formularios. El texto que escriba aparecerá en el cuadro de texto txtOutput de otro formulario.