Category:Amazing Hopper: Difference between revisions
m
→SOCKETS
m (→SOCKETS) |
|||
Line 2,080:
En HOPPER.H se encuentran las definiciones macro para socket.
La instrucción SOCKET es
=== SERVER TCP ===
-----------------------------------------------------------------------------------
{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▼
▲ 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:
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 ===
-----------------------------------------------------------------------------------
{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 ===
-----------------------------------------------------------------------------------
{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 ===
-----------------------------------------------------------------------------------
{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 ==
|