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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda apis winsock
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda apis winsock  (Leído 1,866 veces)
fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Ayuda apis winsock
« en: 4 Agosto 2010, 00:59 am »

Holas a todos... estoy intentando hacer un servidor usando las api de winsock, pero me falla la api Bind.... nose que estoy haciendo mal ya que lo e revisado unas 10 o 12 veces y nose que podra estar sucediendo, haber si usatedes lo saben, codigo:

Código
  1. Option Explicit
  2.  
  3. Private Declare Function WSAStartup Lib "WSOCK32" (ByVal wVersionRequired As Long, lpWSADATA As WSAData) As Long
  4. Private Declare Function socket Lib "wsock32.dll" (ByVal af As Long, ByVal s_type As Long, ByVal protocol As Long) As Long
  5. Private Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer
  6. Private Declare Function Bind Lib "wsock32.dll" Alias "bind" (ByVal s As Long, ByRef name As sockaddr, ByVal namelen As Long) As Long
  7.  
  8. Private Const MAX_WSADescription = 256
  9. Private Const MAX_WSASYSStatus = 128
  10. Private Const WS_VERSION_REQD As Long = &H101
  11. Private Const AF_INET As Long = 2
  12. Private Const SOCK_STREAM As Long = 1
  13. Private Const IPPROTO_TCP As Long = 6
  14. Private Const INADDR_ANY As Long = &H0
  15.  
  16. Private Type sockaddr
  17.    sin_family As Integer
  18.    sin_port As Integer
  19.    sin_addr As Long
  20.    sin_zero As String * 8
  21. End Type
  22.  
  23. Private Type WSAData
  24.    wVersion As Integer
  25.    wHighVersion As Integer
  26.    szDescription(0 To MAX_WSADescription) As Byte
  27.    szSystemStatus(0 To MAX_WSASYSStatus) As Byte
  28.    wMaxSockets As Integer
  29.    wMaxUDPDG As Integer
  30.    dwVendorInfo As Long
  31. End Type
  32.  
  33. Public Function Dsocket() As Boolean
  34.    Dim IniciarSocket As Integer
  35.    Dim WSAS As WSAData
  36.    Dim sock As Integer
  37.    Dim sa As sockaddr
  38.  
  39.    IniciarSocket = WSAStartup(WS_VERSION_REQD, WSAS)
  40.    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
  41.  
  42.    sa.sin_family = AF_INET
  43.    sa.sin_addr = INADDR_ANY
  44.    sa.sin_port = htons(22233)
  45.  
  46.    If (Bind(sock, sa, LenB(sa)) = -1) Then
  47.        MsgBox "error": Exit Function
  48.    End If
  49.  
  50.  
  51.    Exit Function
  52. error:
  53.    Exit Function
  54. End Function
  55.  
  56.  
  57. Private Sub form_load()
  58.     Dsocket
  59. End Sub


salu2! y esperando respuesta.




En línea

Un byte a la izquierda.
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Ayuda apis winsock
« Respuesta #1 en: 4 Agosto 2010, 05:26 am »

hola yo por lo que veo funciona, el problema es que no cierras la sesión y al ejecutarlo por segunda vez te da el error.
 
Código:
closesocket sock

pero bueno deberias declarar sock en el general ya que no tiene sentido cerrarlo dentro de la misma subrutina.


Cita de: MSDN
The bind function associates a local address with a socket.

Saludos


En línea

fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: Ayuda apis winsock
« Respuesta #2 en: 4 Agosto 2010, 12:44 pm »

Um.... no me imaginaba que fuera por eso.. jeje eske es la primera vez que uso estas api  jejej

muchas gracias de nuevo LeandroA.

salu2!
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Apis Winsock
Ingeniería Inversa
ignorantev1.1 5 3,547 Último mensaje 7 Noviembre 2011, 17:29 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines