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