Category:Amazing Hopper: Difference between revisions

m
Line 2,080:
En HOPPER.H se encuentran las definiciones macro para socket.
 
La instrucción SOCKET es teldel tipo NAVAJA SUIZA, con la cual se pueden realizar conexiones básicas, tanto TCP como UDP.
 
=== SERVER TCP ===
 
HOPPER DESCRIPCION
-----------------------------------------------------------------------------------
{N,P}socket(OPENTCPSRV)
{F}socket(CLOSESOCK)
Abre un socket en modo server, y devuelve un identificador de
socket. También, cierra un socket identificado por F.
Para más información, ver el ejemplo al final de este ítem.
N = número de conexiones
P = puerto
CODIGO = ver lista de códigos.
 
accept(F) Acepta una conexión entrante, con identificador de socket F,
y devuelve un identificador de cliente conectado.
 
{A}send(F) Envía una cadena A al socket identificado por F.
 
{S}recv(F) Recibe una cadena desde el socket F, de tamaño S. La función
devuelve:
1) mensaje del cliente
2) número de IP del cliente
3) tamaño del mensaje recibido.
 
accept(F) Acepta una conexión entrante, con identificador de socket F,
y devuelve un identificador de cliente conectado.
{A}send(F) Envía una cadena A al socket identificado por F.
{S}recv(F) Recibe una cadena desde el socket F, de tamaño S. La función
devuelve:
devuelve: 1) mensaje del cliente
1 2) mensajenúmero de IP del cliente
2) número de3) IPtamaño del clientemensaje recibido.
EJEMPLO:
 
#include <stdio.hh>
main:
fd=0,fdc=0
{","}tok sep
 
{5,10000}socket (OPENTCPSRV) /* abre socket tcp modo server: puerto
10000, número de conexiones: 5 */
Line 2,136:
=== CLIENTE TCP ===
 
HOPPER DESCRIPCION
-----------------------------------------------------------------------------------
{IP,P}socket(OPENTCPCLI)
{F}socket(CLOSESOCK)
Abre un socket en modo cliente, y devuelve un identificador
de socket. También, cierra un socket.
IP = IP del server. Ejemplo: "127.0.0.1"
P = puerto
F = identificador de socket
 
connect(F) Se conecta al server. Si el server no está en línea, devuelve
un error.
 
EJEMPLO:
 
#include <stdio.hh>
Line 2,162:
connect(fd) // me conecto al server
{100}recv(fd) // recibo mensaje enviado por server
 
s="",join(s)
{s,"\n"}print /* imprime mensaje, ip fuente,
Line 2,175:
=== SERVER UDP ===
 
HOPPER DESCRIPCION
-----------------------------------------------------------------------------------
{P}socket(OPENUDPSRV)
{F}socket(CLOSESOCK) Abre un socket server UDP, y devuelve un descriptor para ese
socket. También lo cierra.
 
{S}recvfrom(F) Recibe un mensaje desde el socket F, de tamaño S.
 
{A}sendto(F) Envía un mensaje A, al socket F.
 
EJEMPLO:
Line 2,200:
{"Respuesta a su solicitud..."}
sendto(fd) // envía respuesta al cliente
 
{fd}socket(CLOSESOCK) // cierra socket server
{0}return
Line 2,206:
=== CLIENTE UDP ===
 
HOPPER DESCRIPCION
-----------------------------------------------------------------------------------
{IP,P}socket(OPENUDPCLI)
{F}socket(CLOSESOCK)
Abre un socket UDP en modo cliente, y devuelve su descriptor.
También cierra un socket.
 
EJEMPLO:
Line 2,221:
{"127.0.0.1",10000}socket(OPENUDPCLI) // abro socket modo cliente
mov(fd) // obtengo descriptor
 
{"Solicito algo del SERVER..."}
sendto(fd) // envio una solicitud al server
Line 2,236:
OPENUDPCLI Abre un socket en modo UDP cliente.
CLOSESOCK Cierra un socket.
 
 
== TOKENS ==
543

edits