21. maj 2001 - 10:01Der er
3 kommentarer og 1 løsning
winsock pakker
Hej Jeg vil gerne sende en pakke over winsock som jeg har fået af vide skulle se sådan ud:
Send speech to the server ------------------------------------ byte ID (03) word Size of Packet byte Mode (0=say,2=emote,8=whipser,9=yell) word Text Color word Font byte
Text
Hvordan fremstiller jeg sådan en pakke og sender den ?
du skal konstruere et bytearray... (se hjælperutiner nederst) . . .
dim bPacket(0 To 0) as Byte dim bAdd() as Byte Dim bText() as Byte dim SizeOfpacket As Integer dim strText
strText=\"Hopper op og ned og råwer Harjsa :o)\"
SizeOfPacket=1+2+1+2+2+len(strText)
bPaket(0)=03
gsWordToBytes bAdd, SizeOfpacket psAddBytesToPacket bPacket, bAdd) \'Tilføj SizeOfPacket Redim bAdd(0 To 0) As Byte bAdd(0)=0 \'Say psAddBytesToPacket bPacket, bAdd) \'Tilføj action gsWordToBytes bAdd, 10 \'din text farve psAddBytesToPacket bPacket, bAdd) \'Tilføj farve gsWordToBytes bAdd, 16 \'din text font psAddBytesToPacket bPacket, bAdd) \'Tilføj font
bText=strText \'smid din tekst ind i et bytearray psAddBytesToPacket bPacket, bText) \'Tilføj tekst
. . . .
Public Sub psAddBytesToPacket(ByRef larPacket() As Byte, larAdd() As Byte)
Dim lintStart As Integer Dim lintC As Integer
lintStart = UBound(larPacket) ReDim Preserve larPacket(0 To lintStart + UBound(larAdd) + 1) For lintC = 0 To UBound(larAdd) larPacket(lintStart + lintC + 1) = larAdd(lintC) Next lintC End Sub
Public Sub gsWordToBytes(ByRef b() As Byte, IntNumber As Long) b(1) = IntNumber \\ (2 ^ 8) b(0) = (IntNumber - (b(1) * 2 ^ 8)) End Sub
Jeg har ikke testet koden, men det er noget i den retning du skal bruge.
Sub Pack() Dim bPacket() As Byte Dim bAdd() As Byte Dim bText() As Byte Dim bWord(0 To 1) As Byte Dim SizeOfpacket As Long Dim strText
strText = \"Hopper op og ned og råwer Harjsa :o)\"
SizeOfpacket = 1 + 2 + 1 + 2 + 2 + Len(strText)
ReDim bPacket(0 To 0) As Byte bPacket(0) = 3
gsWordToBytes bWord, SizeOfpacket psAddBytesToPacket bPacket, bWord \'Tilføj SizeOfPacket ReDim bAdd(0 To 0) As Byte bAdd(0) = 0 \'Say psAddBytesToPacket bPacket, bAdd \'Tilføj action gsWordToBytes bWord, 10 \'din text farve psAddBytesToPacket bPacket, bWord \'Tilføj farve gsWordToBytes bWord, 16 \'din text font psAddBytesToPacket bPacket, bWord \'Tilføj font
bText = strText \'smid din tekst ind i et bytearray psAddBytesToPacket bPacket, bText \'Tilføj tekst
End Sub
Public Sub psAddBytesToPacket(ByRef larPacket() As Byte, larAdd() As Byte)
Dim lintStart As Integer Dim lintC As Integer
lintStart = UBound(larPacket) ReDim Preserve larPacket(0 To lintStart + UBound(larAdd) + 1) For lintC = 0 To UBound(larAdd) larPacket(lintStart + lintC + 1) = larAdd(lintC) Next lintC End Sub
Public Sub gsWordToBytes(ByRef b() As Byte, IntNumber As Long) b(1) = IntNumber \\ (2 ^ 8) b(0) = (IntNumber - (b(1) * 2 ^ 8)) End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.