UTNianos

Versión completa: [Informatica 1][Ayuda] Uso del socket en C
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
hola chicos, una pregunta, alguien sabe como hay que configurar el socket para que se puedan trasmitir los datos via internet? porque lo que vimos normalmente es trasnmitir la informacion en una red Confused
Porque lo necesitaria saber para el proyecto de info que estoy haciendo...

Saludos.
Te dejo una guía tal vez esta...
La verdad que yo también vi solo por red y hasta ahí casi no vi nadaConfusedConfusedConfused

[attachment=1961]
nooo, buenisimo el pdf feer! =D gracias

rezo a DIos de que este eso, porque no lo encontre en internet u.u
Yo lo tengo que hacer para una lan...
Pero dijo que ahí no hay problemas... igual no se ni como todavía
no te preocupes, lo de sockets es saber de memoria (si nos toma en un final, cagamos xD) jajaj
che, estuve revisando el info que me pasaste, creo q no hay sockets para internet u.u
Uh que garcha...Confused
Yo tengo funciones ya hechas que me dio mi profesor para usar.. igual hay que modificarlas todas ninguna sirve jaja
las funciones de la catedra te referis? jajajaj
http://www.electron.frba.utn.edu.ar/~afu...o1/socket/


Off-topic:
si, me voy a cortar los huevos... u.u
No tenía otras.. esas no las conocia!!!
estas funciones son de la catedra de info1, fijate ;)
Gente, en una configuracion normal no deberia haber diferencias para conectarse a traves de una LAN o Internet.
si, pero para conectarse al internet, tengo varios ips: el ip de mi pc, el ip del router...

y el cliente, tambien tiene varios ips, el del router y el de la pc...

cual debo utilizar?
ba, cuales debo utilizar?
(03-12-2011 20:51)electroquimica escribió: [ -> ]si, pero para conectarse al internet, tengo varios ips: el ip de mi pc, el ip del router...

y el cliente, tambien tiene varios ips, el del router y el de la pc...

cual debo utilizar?
ba, cuales debo utilizar?

No tenés que preocuparte por esa cuestión. Las comunicaciones en sockets son siempre de la forma cliente - servidor, y ambas partes solo deben conocer la dirección IP del otro para poder comunicarse. Del enrutamiento a través de todos los equipos que están en el medio se encargan los protocolos de más bajo nivel.

Ahora, si son comunicaciones entre computadoras que están detrás de routers hogareños es un poco más difícil pero tampoco lo vas a resolver mediante la utilización de sockets. Las aplicaciones siempre se conectan al otro equipo a través de la dirección IP pública, es decir, la que te da tu proveedor de internet. Las direcciones IP internas (aquellas que te da tu router) son inalcanzables para los equipos fuera de esa red LAN, es por este motivo que tu red local LAN puede tener equipos con las mismas direcciones que otra red LAN diferente; algo que no sucede en Internet.
Ahora, para este tipo de problemas que plantea el NATeo existen soluciones que se pueden implementar desde la infraestructura de red. Por ejemplo, podés configurar para que todos los paquetes que vayan direccionados a determinado puerto TCP (o UDP) de la dirección pública del router, sean retransmitidos a determinada dirección IP interna (al mismo u otro puerto). Es lo que comúnmente se llama port forwarding y se suele hacer, por ejemplo, para las aplicaciones P2P.
Pero, este tipo de soluciones van más allá de cómo implementes los sockets en tu aplicación.

Saludos.
uhh, entonces si no uso router, es posible establecer la conexion? o me estoy complicando la vida?
(04-12-2011 16:29)electroquimica escribió: [ -> ]uhh, entonces si no uso router, es posible establecer la conexion? o me estoy complicando la vida?

Si al menos uno de los clientes está en una dirección pública (llamémosle servidor en lugar de cliente por esta diferencia), vas a poder conectarte de un nodo a otro sin inconvenientes. Vale la aclaración de que el que está en la IP pública es el que recibe la conexión entrante, ya que en sentido inverso volvemos al problema original (a menos que dejes ambos públicos).
Aunque te recomendaría que investigues la opción de port forwarding. Por ejemplo, el uTorrent viene con una opción para verificar que el port forward esté correctamente configurado. Ya con eso, solo deberías seleccionar un puerto, verificarlo con el uTorrent y después poner tu aplicación a esperar conexiones en ese puerto.
Es simple, abrir sockets es lo mismo para lan como para internet... Pero hay dos cosas que pueden trabar: 1.-Router 2.-Firewall
Si abris un puerto en una red para que alguien acceda a travez de internet al mismo, primero tenes que configurar el router para que cuando alguien intente entrar por ese puerto (ya que se van a conectar a la ip del router, y el puerto también lo resuelve el router) sea redireccionado al puerto de tu pc, por lo general se llama "port forwarding" ahi pones el puerto que queres abrir y a que pc mandarlo. Pero tene cuidado tambien de que no haya un firewall bloqueándote el trafico de entrada, en tal caso tenes que configurarlo para que acepte conexiones por el puerto deseado.

Siempre que alguien se quiera conectar a tu pc, tenes que pasarle la ip publica, no la ip de red.

Cualquier cosa por si no sabes tu ip: http://www.whatismyip.com
URLs de referencia