elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sockets  (Leído 626 veces)
Panic0

Desconectado Desconectado

Mensajes: 36

"Un programador no muere,solo sube a la nube"


Ver Perfil
Sockets
« en: 20 Agosto 2020, 03:06 »

Chicos soy nuevo en esto de los sockets,logre hacer esto...¿Pero mi pregunta es con que puedo seguir ahora?
Servidor
Código:
import socket
mi_socket = socket.socket()
mi_socket.bind(('192.168.1.31',8000 ))
mi_socket.listen(5) 


while True:
   conexion, addr = mi_socket.accept()
   print ("Nueva conexion establecida!")
   print(addr)
   respuesta1 = conexion.recv(1024)
   print(respuesta1)
   mensajeServidor = "Hola, te saludo desde el servidor!"
   conexion.send(mensajeServidor.encode())
   conexion.close() 
Cliente
Código:
import socket
mi_socket = socket.socket()
mi_socket.connect (('192.168.1.31', 8000))
MensajeCliente = "Hola, te saludo desde el cliente!"
mi_socket.send(MensajeCliente.encode())
repuesta = mi_socket.recv(1024).decode()
print(repuesta)


En línea

Drakaris

Desconectado Desconectado

Mensajes: 222


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
Re: Sockets
« Respuesta #1 en: 20 Agosto 2020, 12:56 »

A que te refieres con...?
Citar
Pero mi pregunta es con que puedo seguir ahora?
Puedes hacer lo que quieras. ¿Que quieres hacer? Puedes hacer desde una red de conexiones hasta un backdoor. ¿Que quieres hacer con ello?

Si quieres aprender a hacer conexiones sockets. Unicamente no te limites a seguir tutoriales. Esta bien para aprender los fundamentos. Pero aprenderás más cuando te pongas una meta y hagas un proyecto (no hace falta grande) que conlleve esto.

Te recomiendo que en la funcion bind() el string este vacio, ya que esta escuchando conexiones.
Código
  1. mi_socket = socket.socket()
  2. mi_socket.bind(('',8000 ))
  3. mi_socket.listen(5)  
  4.  

A no ser que quiera que escuche hacia una IP especifica.

Además estas creando un objeto socket.socket(), cuando creas un funcion socket sin parametros, por defecto estas creando un socket con paquetes TCP/IP y IPv4

Código
  1. mi_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
El primer parametro especifica el tipo de familia (IPv4, IPv6) y el segundo el tipo de paquete (TCP/UDP). Mira la documentación oficial
Doc: https://docs.python.org/3/library/socket.html?highlight=socket#socket.socket

Además. Estas trabajando en localhost? Si es así en el servidor cambia el:
Código
  1. mi_socket.bind(('192.168.1.31',8000 ))
a
Código
  1. mi_socket.bind(('',8000 ))

y en el cliente:
Código
  1. mi_socket.connect(('192.168.1.31', 8000))
a
Código
  1. mi_socket.connect(('127.0.0.1', 8000))
recuerda que 127.0.0.1/localhost es el loopback en IPv4 y en IPv6 es ::1

He probado tu código y va bién. Unicamente es que en el lado del servidor cuando muestras el mensaje, se muestra en b'[texto]'.
Código
  1. print(repuesta1) #output: b'Hola, te saludo desde el servidor!'
, reemplaza la linea a:
Código
  1. print(repuesta1.decode()) #output: Hola, te saludo desde el servidor!

Ejemplo de conexion socket

Server:
Código
  1. #!/usr/bin/python3
  2. import socket, sys
  3. mi_socket = socket.socket()
  4. mi_socket.bind(('',8000 ))
  5. mi_socket.listen(5)  
  6.  
  7. while True:
  8.  try:
  9.   conexion, addr = mi_socket.accept()
  10.   print ("Nueva conexion establecida!")
  11.   print(addr)
  12.   while True:
  13.      respuesta1 = conexion.recv(1024)
  14.      if respuesta1.decode() == "close":
  15.        print("closing server....")
  16.        mi_socket.close()
  17.        sys.exit()
  18.      else:
  19.        print(respuesta1.decode())
  20.  except KeyboardInterrupt: # presiona Ctrl+C
  21.    print("\nclosing server....")
  22.    break
  23. mi_socket.close()
  24. sys.exit()
  25.  

client:
Código
  1. #!/usr/bin/python3
  2. import socket
  3. mi_socket = socket.socket()
  4. mi_socket.connect (('127.0.0.1', 8000))
  5. MensajeCliente = "Hola, te saludo desde el cliente!"
  6. mi_socket.send(MensajeCliente.encode())
  7. while True:
  8. prompt = input("> ")
  9. if prompt == "close":
  10. print("closing client...")
  11. mi_socket.send(b"close")
  12. break
  13. elif prompt != "":
  14. mi_socket.send(prompt.encode())
  15. mi_socket.close()
  16.  




Esta conexion, te permite enviar mensajes, y en el lado del servidor los imprime, además si le envias la palabra "close", el servidor al recibir cuya palabra, envia al cliente GoodBye, y cierra el server. Y cuando el cliente recibe el GoodBye este se cierra. Además si hacer Ctrl+C en el script del servidor, este se cierra.


« Última modificación: 20 Agosto 2020, 12:59 por Drakaris » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sockets en PHP
PHP
ProTeamOtto 6 1,759 Último mensaje 3 Enero 2007, 17:48
por ProTeamOtto
sockets en C#
.NET (C#, VB.NET, ASP)
anthkark 2 4,841 Último mensaje 3 Junio 2007, 17:45
por BADBYTE-K
sockets
PHP
Og. 2 1,286 Último mensaje 24 Agosto 2009, 05:03
por WHK
Raw Sockets y VB.NET « 1 2 »
.NET (C#, VB.NET, ASP)
elmaro 17 7,408 Último mensaje 16 Diciembre 2009, 21:35
por Foxy Rider
sockets « 1 2 »
.NET (C#, VB.NET, ASP)
flashnet 15 4,723 Último mensaje 17 Marzo 2010, 19:17
por [D4N93R]
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines