Pauscal - Foro en español
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Pauscal - Foro en español

Bienvenido a esta comunidad donde puedes hablar de PAUSCAL. Un lenguaje de programacion de 32 bits.
 
ÍndiceÍndice  Últimas imágenesÚltimas imágenes  BuscarBuscar  RegistrarseRegistrarse  Conectarse  
Navegación
Portal
Índice
Miembros
Perfil
FAQ
Buscar
Página Oficial
Foro Oficial
wiki de Pauscal
Descargas
Últimos temas
» para pauscal 4.0
Winsock en pasucal!!! Siii Funcionaaaa Emptypor tumbercuber Jue Mar 01, 2012 10:33 am

» ¡Bienvenidos al Foro!
Winsock en pasucal!!! Siii Funcionaaaa Emptypor jmetin2 Jue Dic 15, 2011 9:01 am

» Tipo de datos Any
Winsock en pasucal!!! Siii Funcionaaaa Emptypor jmetin2 Miér Nov 16, 2011 3:35 pm

» Winsock en pasucal!!! Siii Funcionaaaa
Winsock en pasucal!!! Siii Funcionaaaa Emptypor jmetin2 Dom Oct 23, 2011 9:57 pm

Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Utilidades
Compañeros
Crear foro
Bookmarking social
Bookmarking social reddit      

Conserva y comparte la dirección de Pauscal

Conserva y comparte la dirección de Pauscal - Foro en español en tu sitio de bookmarking social

 

 Winsock en pasucal!!! Siii Funcionaaaa

Ir abajo 
AutorMensaje
jmetin2




Mensajes : 36
Fecha de inscripción : 20/02/2011
Edad : 27
Localización : Mexico, Yucatan, Merida

Winsock en pasucal!!! Siii Funcionaaaa Empty
MensajeTema: Winsock en pasucal!!! Siii Funcionaaaa   Winsock en pasucal!!! Siii Funcionaaaa EmptyDom Oct 23, 2011 9:57 pm

Bueno amigos, Porfin!!!!!! Winsock, manejo de sockets, como lo quieren llamar

aqui esta la libreria con todas las funciones, mmmmm bueno solo son escribir y leer pero con eso ya tienes muchisimo!!

se las entrego

Code:

Privado:

Const AF_INET = 2
Const SOCK_STREAM = 1
Const errSoquet = &C4861000
Const INADDR_ANY = 0,Server=1,Client=0

Importar "Pauscal.prp"
Estruc SOCKADDR, _
sin_family:Word, _
sin_port:Word, _
sin_addr:Entero, _
sin_zero[8]:Byte

Estruc WSAData, _
wVersion:Word, _
wHighVersion:Word, _
szDescription[257]:Byte, _
szSystemStatus[129]:Byte, _
iMaxSockets:Word, _
iMaxUdpDg:Word, _
lpVendorInfo:Entero

Estruc hostent, _
h_name:Entero, _
h_aliases:Entero, _
h_addrtype:Word, _
h_length:Word, _
@h_addr_list:Entero

Proc WSAStartup(wVersionRequired:Entero, Referencia lpWSAData:WSAData):EnteroSig, "ws2_32.dll"
Proc WSACleanup():EnteroSig, "ws2_32.dll"
Proc WSAGetLastError():EnteroSig, "ws2_32.dll"

Proc socket(AddressFamily:Entero, SocketType:Entero, Protocol:Entero):EnteroSig, "ws2_32.dll"
Proc bind(s:Entero, Referencia addr:SOCKADDR, namelen:Entero):EnteroSig, "ws2_32.dll"
Proc listen(s:Entero, backlog:Entero):EnteroSig, "ws2_32.dll"
Proc accept(s:Entero, Referencia addr:SOCKADDR, Referencia addrlen:Entero):EnteroSig, "ws2_32.dll"
Proc connect(s:Entero, Referencia addr:SOCKADDR, namelen:Entero):EnteroSig, "ws2_32.dll"
Proc send(s:Entero, bufptr:Entero, llen:Entero, flags:Entero):EnteroSig, "ws2_32.dll"
Proc recv(s:Entero, bufptr:Entero, llen:Entero, flags:Entero):EnteroSig, "ws2_32.dll"
Proc closesocket(s:Entero):EnteroSig, "ws2_32.dll"
Proc inet_addr(Referencia cp:Cadena):EnteroSig, "ws2_32.dll"
Proc gethostbyname(nombre:Cadena):EnteroSig, "ws2_32.dll"
Proc htons (hostshort:Entero):EnteroSig, "ws2_32.dll"

Proc ComplementoADos(Num:EnteroSig):EnteroSig
Si Num > 32767
Num = Num - 1
Resultado = (-1)*(Num Xor 65535)
SiNo
Resultado = Num
FinSi
FinProc

Público:

Clase Sock

ClaseVar IP:Cadena
ClaseVar Puerto:Entero
ClaseVar Hilos:Entero
Privado:
ClaseVar Id:EnteroSig
ClaseVar Type:Entero
Público:

Proc Conectar():Booleano
Var SockCli,Error,wVersionRequested:EnteroSig
Var Sin:SOCKADDR
Var wsaData:WSAData
Si Puerto=0 Salir
Si IP="" Salir
wVersionRequested = 2*256+2
Error = WSAStartup(wVersionRequested, wsaData)
Si Error 0
Salir
FinSi
Si (Lobyte(wsaData.wVersion) 2) Or (Hibyte(wsaData.wVersion) 2)
WSACleanup
Salir
FinSi

SockCli = socket(AF_INET, SOCK_STREAM, 0)
Si SockCli = errSoquet
Error = WSAGetLastError()
WSACleanup
Salir
FinSi
Sin.sin_family = AF_INET
Sin.sin_addr = inet_addr(IP)
Sin.sin_port = ComplementoADos(htons(Puerto))
Si connect(SockCli, Sin, Long(Sin)) = errSoquet
WSACleanup
Resultado=Falso
SiNo
Resultado=Verd
FinSi
Id=SockCli
Type=Client
FinProc

Proc Escuchar():Booleano
Var SockServer,Error,wVersionRequested,SonLen:Entero
Var Sin,Son:SOCKADDR
Var wsaData:WSAData
Si puerto=0 Salir
Si Hilos=0 Salir
wVersionRequested = 2*256+2
WSAStartup(wVersionRequested, wsaData)
SockServer = socket(AF_INET, SOCK_STREAM, 0)
Sin.sin_family = AF_INET
Sin.sin_addr = INADDR_ANY
Sin.sin_port = ComplementoADos(htons(Puerto))
bind(SockServer, Sin, Long(Sin))
listen(SockServer, Hilos)
SonLen=Long(Son)
Id=Accept(SockServer,Son,SonLen)
Si Id errSoquet Mensaje("Conexion establesida")
Resultado=Verd
Type=Server
FinProc
'-------------------------- Funciones
Proc Leer(Tamaño:Entero):Cadena
Var Ret:Entero
Resultado=RepCarac(0,Tamaño)
Ret=Recv(Id,CadPtr(Resultado),Tamaño,0)
FinProc

Proc LeerEnt():Entero
Recv(Id,Resultado@,Long(Resultado),0)
FinProc

Proc Escribir(Texto:Cadena):Booleano
Var Ret:Entero
Ret=Send(Id,CadPtr(Texto),lstrlenptr(CadPtr(Texto)),0)
Si Ret>0 Resultado=Verd
FinProc

Proc Cerrar()
closesocket(Id)
WSACleanup
FinProc

Privado:
Destructor: Cerrar
FinClase

Var Winsock:Sock
Volver arriba Ir abajo
 
Winsock en pasucal!!! Siii Funcionaaaa
Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Pauscal - Foro en español :: Programación en Pauscal :: Herramientas y utilidades-
Cambiar a: