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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Servidor tcp minimalista (vb.net)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Servidor tcp minimalista (vb.net)  (Leído 2,671 veces)
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Servidor tcp minimalista (vb.net)
« en: 20 Marzo 2012, 10:15 am »

Está construido a partir de varios ejemplos que se pueden encontrar en msdn pero que por sí solos eran incompletos. No mantiene una conexión abierta, tan sólo conecta, envía los datos indicados y captura la respuesta recibida, se debería controlar la posibilidad de que no reciba datos, pero eso se lo dejo ya a cada uno.

Código:
' Minimal Tcp client for vb.net by abderramah (based in several msdn example codes)
'
' // este cliente no mantiene una conexión abierta, tan sólo conecta a una dirección, envía los datos indicados
' // y espera a recibir respuesta. En caso de no recibirla es posible que se quede en estado de espera, pero
' // con unas pocas líneas se puede solucionar.
'
' // petición http de ejemplo:
' // getsocket.socketsendreceive(192.168.2.5, 80, "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf )

Public Class GetSocket
Public Event errordebug(ByVal datae As String)

Public Function ConnectSocket(ByVal server As String, ByVal port As Integer) As Socket
Dim s As Socket = Nothing
Dim hostEntry As New IPHostEntry

' recibir información del host
Try
Dim ipe As IPAddress = New IPAddress(IPAddress.Parse(server).GetAddressBytes)
hostEntry.AddressList = {ipe}
Catch ex As Exception
Try
hostEntry = Dns.GetHostEntry(server)
Catch exa As Exception
hostEntry.AddressList = {IPAddress.Parse(server)}
End Try
End Try

' recorrer todas las direcciones del host (ipv4 e ipv6)
Dim address As IPAddress

For Each address In hostEntry.AddressList
Dim endPoint As New IPEndPoint(address, port)
Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)

Try
tempSocket.Connect(endPoint)
Catch ex As Exception
Return s
Exit Function
End Try

If tempSocket.Connected Then
s = tempSocket
Exit For
End If
Next address

Return s
End Function

' conectar, enviar petición y recibir la respuesta
Public Function SocketSendReceive(ByVal server As String, ByVal port As Integer, ByVal datae As String) As String
Dim ascii As Encoding = Encoding.ASCII
'httprequest= "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
Dim request As String = datae
Dim bytesSent As [Byte]() = ascii.GetBytes(request)
Dim bytesReceived(128000) As [Byte]

' crear socket
Dim s As Socket = ConnectSocket(server, port)

If s Is Nothing Then
Return "Tcp connection failed"
Exit Function
End If
' enviar la petición tcp
s.Send(bytesSent, bytesSent.Length, 0)

Dim bytes As Int32
' leer los datos de entrada
Dim page As [String] = ""

' loop recibiendo
Do
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)
page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes)
Loop While bytes > 0
Return page
End Function
End Class


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como puedo copiar este archivo de servidor a servidor??
PHP
neoshadybeat 2 4,157 Último mensaje 21 Mayo 2007, 09:32 am
por dominioswww
Problemas conexion a servidor con batch y ejecutar una shell dentro del servidor
Scripting
andrespp 0 2,990 Último mensaje 13 Octubre 2011, 17:40 pm
por andrespp
Así es el minimalista logo de Windows 8
Noticias
wolfbcn 0 1,941 Último mensaje 18 Febrero 2012, 02:15 am
por wolfbcn
Wire, la alternativa minimalista a WhatsApp
Noticias
wolfbcn 0 1,715 Último mensaje 5 Diciembre 2014, 21:46 pm
por wolfbcn
Análisis de la torre CORSAIR CARBIDE 275R: belleza minimalista
Noticias
wolfbcn 0 1,019 Último mensaje 14 Abril 2018, 01:41 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines