Hallo,
also .net und c is es sicher nicht, ist ja ein linux clon^^
das war schon klar, aber wovon war inetressant.
also laut hersteller, kann man einfach VB5 hernehmen…
Das ist schon mal gut, dann bist Du im richtigen Brett.
Nur ein Problem hast Du, Dir fehlen vermutlich die ganzen DLLs, oder kannst Du die auch verwenden? Ohne auf die API zurückzugreifen bekommst Du mit VB kein Telnet.
Um nicht zu viel Code zu posten und weil ich fürchte, daß es nichts wird, mal nur die Deklaration für das benötigte Socket-Modul:
Public Sockets As New Collection
Public usedcount%
Public Enum sockType
sockClosed = 1
sockListening = 2
sockConnecting = 3
sockConnected = 4
End Enum
Public Const FD\_SETSIZE = 64
Public Const CSocketMsg = 2000
Public Type fd\_set
fd\_count As Integer
fd\_array(FD\_SETSIZE) As Integer
End Type
Public Type timeval
tv\_sec As Long
tv\_usec As Long
End Type
Public Type Inet\_address
Byte4 As String \* 1
Byte3 As String \* 1
Byte2 As String \* 1
Byte1 As String \* 1
End Type
Public Type HostEnt
h\_name As Long
h\_aliases As Long
h\_addrtype As Integer
h\_length As Integer
h\_addr\_list As Long
End Type
Public Const hostent\_size = 16
Public Type servent
s\_name As Long
s\_aliases As Long
s\_port As Integer
s\_proto As Long
End Type
Public Const servent\_size = 14
Public Type protoent
p\_name As Long
p\_aliases As Long
p\_proto As Integer
End Type
Public Const protoent\_size = 10
Public Const IPPROTO\_TCP = 6
Public Const IPPROTO\_UDP = 17
Public Const INADDR\_NONE = &HFFFF
Public Const INADDR\_ANY = &H0
Public Type sockaddr
sin\_family As Integer
sin\_port As Integer
sin\_addr As Long
sin\_zero As String \* 8
End Type
Public Type sockaddrbyte
sin\_family As Integer
sin\_port As Integer
sin\_addr1 As Byte
sin\_addr2 As Byte
sin\_addr3 As Byte
sin\_addr4 As Byte
sin\_zero As String \* 8
End Type
Public Const sockaddr\_size = 16
Public Const WSA\_DESCRIPTIONLEN = 256
Public Const WSA\_DescriptionSize = WSA\_DESCRIPTIONLEN + 1
Public Const WSA\_SYS\_STATUS\_LEN = 128
Public Const WSA\_SysStatusSize = WSA\_SYS\_STATUS\_LEN + 1
Public Type WSADataType
wVersion As Integer
wHighVersion As Integer
szDescription As String \* WSA\_DescriptionSize
szSystemStatus As String \* WSA\_SysStatusSize
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Public Const INVALID\_SOCKET = -1
Public Const SOCKET\_ERROR = -1
Public Const SOCK\_STREAM = 1
Public Const SOCK\_DGRAM = 2
Public Const MAXGETHOSTSTRUCT = 1024
Public Const AF\_INET = 2
Public Const PF\_INET = 2
Public Type LingerType
l\_onoff As Integer
l\_linger As Integer
End Type
'---Windows System Functions
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Sub MemCopy Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb&:wink:
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long
'---async notification constants
Public Const SOL\_SOCKET = &HFFFF&
Public Const SO\_LINGER = &H80&
Public Const FD\_READ = &H1&
Public Const FD\_WRITE = &H2&
Public Const FD\_ACCEPT = &H8&
Public Const FD\_CONNECT = &H10&
Public Const FD\_CLOSE = &H20&
'---SOCKET FUNCTIONS
Public Declare Function acceptsocket Lib "wsock32.dll" Alias "accept" (ByVal S As Long, addr As sockaddr, addrlen As Long) As Long
Public Declare Function bind Lib "wsock32.dll" (ByVal S As Long, addr As sockaddr, ByVal namelen As Long) As Long
Public Declare Function closesocket Lib "wsock32.dll" (ByVal S As Long) As Long
Public Declare Function connectsocket Lib "wsock32.dll" Alias "connect" (ByVal S As Long, addr As sockaddr, ByVal namelen As Long) As Long
Public Declare Function ioctlsocket Lib "wsock32.dll" (ByVal S As Long, ByVal cmd As Long, argp As Long) As Long
Public Declare Function getpeername Lib "wsock32.dll" (ByVal S As Long, sname As Any, namelen As Long) As Long
Public Declare Function getsockname Lib "wsock32.dll" (ByVal S As Long, sname As Any, namelen As Long) As Long
Public Declare Function getsockopt Lib "wsock32.dll" (ByVal S As Long, ByVal level As Long, ByVal optname As Long, optval As Any, optlen As Long) As Long
Public Declare Function setsockopt Lib "wsock32.dll" (ByVal S As Long, ByVal level As Long, ByVal optname As Long, optval As Any, ByVal optlen As Long) As Long
Public Declare Function htonl Lib "wsock32.dll" (ByVal hostlong As Long) As Long
Public Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer
Public Declare Function inet\_addr Lib "wsock32.dll" (ByVal cp As String) As Long
Public Declare Function inet\_ntoa Lib "wsock32.dll" (ByVal inn As Long) As Long
Public Declare Function listensocket Lib "wsock32.dll" Alias "listen" (ByVal S As Long, ByVal backlog As Long) As Long
Public Declare Function ntohl Lib "wsock32.dll" (ByVal netlong As Long) As Long
Public Declare Function ntohs Lib "wsock32.dll" (ByVal netshort As Long) As Integer
Public Declare Function recv Lib "wsock32.dll" (ByVal S As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Public Declare Function send Lib "wsock32.dll" (ByVal S As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Public Declare Function Socket Lib "wsock32.dll" Alias "socket" (ByVal af As Long, ByVal s\_type As Long, ByVal Protocol As Long) As Long
Public Declare Function gethostbyaddr Lib "wsock32.dll" (addr As Long, ByVal addr\_len As Long, ByVal addr\_type As Long) As Long
Public Declare Function gethostbyname Lib "wsock32.dll" (ByVal host\_name As String) As Long
Public Declare Function gethostname Lib "wsock32.dll" (ByVal host\_name As String, ByVal namelen As Long) As Long
Public Declare Function getprotobynumber Lib "wsock32.dll" (ByVal proto As Integer) As Long
Public Declare Function getprotobyname Lib "wsock32.dll" (ByVal proto\_name As String) As Long
Public Declare Function getservbyport Lib "wsock32.dll" (ByVal Port As Long, ByVal proto As String) As Long
Public Declare Function getservbyname Lib "wsock32.dll" (ByVal serv\_name As String, ByVal proto As String) As Long
'---WINDOWS EXTENSIONS
Public Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVR As Long, lpWSAD As WSADataType) As Long
Public Declare Function WSACleanup Lib "wsock32.dll" () As Long
Public Declare Sub WSASetLastError Lib "wsock32.dll" (ByVal iError As Long)
Public Declare Function WSAGetLastError Lib "wsock32.dll" () As Long
Public Declare Function WSAAsyncSelect Lib "wsock32.dll" (ByVal S As Long, ByVal hwnd As Long, ByVal wMsg As Long, ByVal lEvent As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal wndrpcPrev As Long, ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const GWL\_WNDPROC = (-4)
' ICMP
Public Type IP\_OPTION\_INFORMATION
TTL As Byte ' Time to Live (used for traceroute)
Tos As Byte ' Type of Service (usually 0)
flags As Byte ' IP header Flags (usually 0)
OptionsSize As Long ' Size of Options data (usually 0, max 40)
OptionsData As String \* 128 ' Options data buffer
End Type
Public Type IP\_ECHO\_REPLY
Address(0 To 3) As Byte ' Replying Address
Status As Long ' Reply Status
RoundTripTime As Long ' Round Trip Time in milliseconds
DataSize As Integer ' reply data size
Reserved As Integer ' for system use
data As Long ' pointer to echo data
Options As IP\_OPTION\_INFORMATION ' Reply Options
End Type
Public Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Public Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean
Public Declare Function IcmpSendEcho Lib "ICMP" (ByVal ICMPHandle As Long, ByVal DestAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP\_OPTION\_INFORMATION, ReplyBuffer As IP\_ECHO\_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean
Public Const WS\_OVERLAPPED = &H0&
Public Const WS\_MINIMIZEBOX = &H20000
Public Const WS\_MAXIMIZEBOX = &H10000
Public Const WS\_SYSMENU = &H80000
Public Const WS\_THICKFRAME = &H40000
Public Const WS\_CAPTION = &HC00000 ' WS\_BORDER Or WS\_DLGFRAME
Public Const WS\_VISIBLE = &H10000000
Public Const WS\_OVERLAPPEDWINDOW = (WS\_OVERLAPPED Or WS\_CAPTION Or WS\_SYSMENU Or WS\_THICKFRAME Or WS\_MINIMIZEBOX Or WS\_MAXIMIZEBOX)
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Public Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Meinst Du, daß das bei Dir laufen kann, wenn Du den ganzen Code hast?
Das vollständige Projekt aus VB6 wird Deine IDE sicher nicht laden, aber ich kann Dir gern den gesamten Quellcode mit ein paar Erklärungen in einem Textfile posten, um ihn mit ‚copy and past‘ leicht in Dein Projekt einfügen zu können. Wie Du aber siehst, musst Du die ganzen benötigten Dlls haben und verwenden können.
Gruß Rainer