Foros del Web » Programando para Internet » PHP »

Enviando información a travéz de Sock

Estas en el tema de Enviando información a travéz de Sock en el foro de PHP en Foros del Web. Es posible enviar información a travez de sock desde PHP? Me explico, que yo le especifique la dirección IP y el puerto y me enviae ...
  #1 (permalink)  
Antiguo 28/07/2004, 13:11
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Enviando información a travéz de Sock

Es posible enviar información a travez de sock desde PHP?
Me explico, que yo le especifique la dirección IP y el puerto y me enviae la informacion y recibirle respuesta de vuelta...

Como abro un puerto?
como recibo?
como envio?
COmo cierro un puerto?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 28/07/2004, 14:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con las funciones fsockopen() y afines.
http://www.php.net/manual/en/function.fsockopen.php

Un saludo,
  #3 (permalink)  
Antiguo 29/07/2004, 09:48
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Hay algo en lo que estoy confundido

- Al yo transmitir datos mediante la URL me estoy conectando a un sock del puerto 80 que es el del http por defecto?
Pregunto, porque mi asesor de tesis me dijo algo parecido, no lo entendí bien.

Yo pensaba que sock era, conectarme a una IP en específico a un puerto en específico. Y ahora que lo pienso , un dominio, es una IP disfrazada.

Qué me podrían aclarar ustedes?
Lo pregunto porque estamos desarrollando en php una aplicación web para el pago vía Internet la universidad y nosotros simulamos el banco enviándole los datos vía URL. La página de simulación recibe el número de tarjeta de crédito, el monto y la fecha de expiración.
Sucede que estuvimos investigando y para pagar vía web, el banco en la realidad lo que hace es darle al cliente una IP y el puerto a donde se tienen que conectar. Entonces tengo que tomar una decisión si tendría que cambiar la simulación del banco. Si al enviar la información por la URL = a conectarme a un sock?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #4 (permalink)  
Antiguo 29/07/2004, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno . .esas preguntas te las prodían responder mejor en el foro de "Seguridad y redes" que trata de esos temas.

Vía PHP abres el puerto que quieras en la IP que quieras .. ahora, tu veras que servicio es el que tienes que usar y sobre todo que al "otro lado" esté a la espera un "servidor" atendiendo tus peticiones .. De nada sirve "abrir" el puerto "20" de cierta IP si ahí no hay nada a la "escucha" o "respondiendote".

El tema del "domino" que si es una IP "disfrazada" .. de todo eso se encargan los servidores DNS para asociar un nombre dominio -> IP y a su vez en X's puertos .. puede ser un servidor de páginas HTTP (puerto 80) . .o uno de mail (25/110 según sea POP/SMTP).. o IRC (depende) o cualquier otro servicio .. para eso tienes los CNAME y registros MX de los DNS entre otras cosas ...

El caso que comentas de "pago por internet" en general de transferencia de datos de esa forma se hace bajo SSL (Secure Socket Layer. Los datos van a viajar encriptados entre tu cliente y el servidor) donde indicas una dirección tipo:
https://www.banco.tal/ .. donde en realidad.. si el acceso "http://" corresponde por norma general al puerto 80 .. ahora por SSL usando https:// se asocia a otro puerto .. lo mismo, puedes conectarte a donde gustes usando http://www.tal.tal:puerto/ .. Es decir . NO es necesario abrir un "socket" forzosamente . Con un link o un formulario que apunte ahí ya estarías pasando datos a esa dirección .. otra cosa es que todo esto tenga que hacerse a nivel "servidor" entre PHP (datos que el genere) y ese otro "servidor".

Las "pasarelas" de pago son así .. uno diseña su própio formulario HTML común y corriente y tan sólo indica en su "action" el URL que el banco dá bajo SSL (https://www.banco.tal/) y crea los campos que la pasarela requiere.

Si tu proceso sería:
cliente (navegador) -> proceso PHP tuyo .. donde gestionas datos de la transacción como ese nº de tarjeta de crédito = deseas almacenarla por ejemplo -> ejecutar transacción sobre tu "pasarela de pago" (ese tal banco). En este caso, te vendría bien usar cURL (sockets) para "re-enviar" los datos que captura PHP (donde apuntaría el formulario en su actio a tu script.php de proceso) hacia el URL que te indiquen salvo que tenga otro médio de conexión (que igualemtne será cierto tipo de IP/puerto y datos a enviarle con cierto formato).

Desde PHP .. para controlar sockets de forma más segura y cómoda tienes las librerias:
cURL
www.php.net/curl

Te recomiendo que leas sobre el protocolo HTTP que define todooo esto.

Un saludo,
  #5 (permalink)  
Antiguo 29/07/2004, 11:37
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Muchas gracias Cluster
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.