Re: Consulta.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Consulta.

Edgar J. De Cleene
Guillermo John puso en su mail :

> Profesor: aprovechando el tiempo ya que no pudimos ir al laboratorio de redes,
> nos pusimos a jugar con sockets.
> Se nos complico con los sockets asincrónicos, es decir enviamos y recibimos
> mensajes, pero el socket que escucha se mantiene en un loop infinito.
> Para ser mas específicos no podemos hacer que el receptor se comporte como
> receptor y como emisor al mismo tiempo.
> Esperando alguna idea,
> Saluda atte,
> Marcos Monti y Guillermo John.
>  

Les prometi un tutorial y no lo hice.
A ver si esto les sirve.
En una máquina que tenga dos copias de todo , imagen, changes y máquina
virtual.
Abrir las dos imagenes y acomodar para que esten las pantallas una al lado
de la otra
En cada imagen hacer
Abrir Workspace
Tipear Socket new inspect
Seleccionar y hacer do it dos veces
Tendremos dos ventanas

En la imagen de la izquierda, ventana de la izquierda

 | leo |
self listenOn: 8000.
    [true]
whileTrue: [
    self waitForConnectionUntil: (Socket deadlineSecs: 30).
    [self isConnected]
        whileTrue: [
self dataAvailable
                ifTrue: [leo := self  getData].
                Transcript show: leo;cr]]

En la imagen de la derecha, ventana de la derecha
| serverName|
serverName := 'localhost'.
self
        connectTo: (NetNameResolver addressForName: serverName)
        port: 8000.
    self waitForConnectionUntil: Socket standardDeadline.
self    sendData: 'HOLA'


Fijarse el gráfico y experimentar.
Si abren el Transcript primero, se les va a llenar de HOLA
Se corta lo que ejecuta pulsando ALT punto hasta que corte.
Si tienen una máquina decente y suerte, corta rápido.
Sino, usar un cuchillo afilado :=)

Espero les sirva

       

Picture 2.jpg (55K) Download Attachment