• Welcome to Valhalla Legends Archive.
 

Winsock With Visual Basic?

Started by AC_Drkan, June 16, 2004, 03:57 PM

Previous topic - Next topic

AC_Drkan

I've Tried the C Way and it just bombs with errors does anyone have any "Examples" of how to do this? im Trying to make a bot that will connect to the server and sit in various public chat rooms (aka Clan Recruitment) without a cd-key.
"The Arguments of Today Result in the Wars of Tomorrow" - Quote By Muah.
<@Logan> I spent a minute looking at my own code by accident.
<@Logan> I was thinking "What the hell is this guy doing?"

<kow`> "There are 10 types of people in the world... those who understand binary and those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID


<[TN]FBMachine> i got kicked out of barnes and noble once for moving all the bibles into the fiction section

God i love Bash.org.

Eli_1

#1
You could use the winsock OCX, but I wrote something that you're probably more used to seeing...




Private Const AF_INET = 2
Private Const INVALID_SOCKET = -1
Private Const SOCKET_ERROR = -1
Private Const SOCK_STREAM = 1
Private Const IPPROTO_TCP = 6
Private Const WSA_DESCRIPTIONLEN = 256
Private Const WSA_SYS_STATUS_LEN = 128
Private Const WSA_DescriptionSize = WSA_DESCRIPTIONLEN + 1
Private Const WSA_SysStatusSize = WSA_SYS_STATUS_LEN + 1

Private Type WSAData
   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
Private Type sockaddr_in
   sin_family As Integer
   sin_port As Integer
   sin_addr As Long
   sin_zero As String * 8
End Type

Private Declare Function WSAGetLastError Lib "wsock32.dll" () As Long
Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
Private Declare Function Send Lib "wsock32.dll" Alias "send" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Declare Function recv Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVR As Long, lpWSAD As WSADataType) As Long
Private Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer
Private Declare Function socket Lib "wsock32.dll" (ByVal af As Long, ByVal s_type As Long, ByVal protocol As Long) As Long
Private Declare Function closesocket Lib "wsock32.dll" (ByVal s As Long) As Long
Private Declare Function Connect Lib "wsock32.dll" Alias "connect" (ByVal s As Long, addr As sockaddr, ByVal namelen As Long) As Long
Private Declare Function WSAAsyncSelect Lib "wsock32.dll" (ByVal s As Long, ByVal hwnd As Long, ByVal wMsg As Long, ByVal lEvent As Long) As Long
Private Declare Function inet_addr Lib "wsock32.dll" (ByVal cp As String) As Long
Private Declare Function gethostbyname Lib "wsock32.dll" (ByVal host_name As String) As Long


' Now that all that confusing crap
' is out of the way...







Private Sub Form_Load()
   Dim WSData As WSAData
   Dim sin As sockaddr_in
   Dim hSocket As Long
   
   Call WSAStartup(&H101, WSData)
   hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
   sin.sin_family = AF_INET
   sin.sin_addr = inet_addr("63.240.202.138")
   sin.sin_port = htons(6112)
   
   If Connect(hSocket, sin, Len(sin)) = SOCKET_ERROR Then
       ' Error connecting. =[
   Else
       ' Connected!
       ' Login
       ' Join channel
       ' Blah :P
       Call closesocket(hSocket)
   End If
   
   Call WSACleanup
End Sub