Imports System.Text
Imports System.Collections
Imports System.Runtime.InteropServices
Public Class CONN
'porta di ascolto
Public port As Integer
'dichiarazioni per il socket
Public Const SUCCESS As Integer = 0
Public Const HIGH_VERSION As Integer = 2
Public Const LOW_VERSION As Integer = 2
Public Const WORD_VERSION As Short = 36
'struttura socket
Public Structure WSAData
Public wVersion As Short
Public wHighVersion As Short
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> Public Description As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public Status As String
Public MaxSockets As Integer
Public MaxUdpDg As Integer
Public vendorInfoPointer As IntPtr
End Structure
'struttura address socket
Public Structure sockaddr
Dim sa_family As Integer
Dim sa_data() As Char
End Structure
'struttura address socket IPV4
Public Structure sockaddr_in
Dim sin_family As Integer
Dim sin_port As Integer
Dim in_addr As sockaddr
Dim sin_zero() As Char
End Structure
'dichiarazione della chiamate alle funzioni che dovro' affettuare
Declare Function WSAStartup Lib "ws2_32.dll" (ByVal versionRequested As Int16, ByVal infoBuffer As WSAData) As Integer
Declare Function WSACleanup Lib "ws2_32.dll" () As Int32
Declare Function accept Lib "ws2_32.dll" (ByVal socketHandle As IntPtr, ByRef socketAddress As sockaddr, ByRef addressLength As Integer) As IntPtr
Declare Function bind Lib "ws2_32.dll" (ByVal socketHandle As IntPtr, ByRef socketAddress As sockaddr_in, ByVal addressLength As Integer) As Integer
Public Sub parti()
'viene eseguita per prima questa procedura
Dim resultCode As Integer = 0
Dim data As WSAData
data = New WSAData
data.wHighVersion = HIGH_VERSION
data.wVersion = LOW_VERSION
resultCode = WSAStartup(WORD_VERSION, data)
If (resultCode = SUCCESS) Then
WSACleanup()
End If
'ho inizializzato il motore delle winsocket per modo di dire
'adesso qui dovrei chiamare la procedura socket che mi restituisce il socket...poi
'metterlo in ascolto e bla bla bla....
End Sub