Avatar billede deamill Nybegynder
13. marts 2001 - 07:50 Der er 12 kommentarer og
1 løsning

WinSock og Objekt

Hejsa,

Er det muligt med Winsock1.senddata (eller en anden metode) at sende et objekt over netværket i stedet for kun en tekst-streng.

Avatar billede wisen Nybegynder
13. marts 2001 - 08:02 #1
Nej, du kan ikke sende et objekt. Det du skal gøre er, at sende objektets data, og oprette et nyt objekt på klientmaskinen.
Avatar billede deamill Nybegynder
13. marts 2001 - 08:36 #2
Har du et foreslag til hvordan det kan gøres!
Avatar billede wisen Nybegynder
13. marts 2001 - 08:37 #3
Nej ikke umiddelbart.
Avatar billede jennemaan Nybegynder
13. marts 2001 - 08:58 #4
Måske skulle du overveje at sende noget XML og så instansiere objektet udfra dit xml-træ?

Tag evt. et kig på http://msdn.microsoft.com/xml/default.asp

/Jennemaan
Avatar billede wisen Nybegynder
13. marts 2001 - 08:59 #5
Ja, XML er en god idé, ellers kan du bruge en almindelig record/struct til at overføre data ...
Avatar billede deamill Nybegynder
13. marts 2001 - 09:30 #6
->wisen

Jamen hvordan kan jeg bruge en record/struct hvis jeg kun kan sende en streng med senddata!?
Avatar billede wisen Nybegynder
13. marts 2001 - 09:35 #7
Du skal heller ikke bruge senddata, men send :

send (SOCKET s, const char *buf, int len, int flags)

Her laver du en buffer med det der skal sendes.
Avatar billede deamill Nybegynder
13. marts 2001 - 09:38 #8
-> wisen

For mig og se ligner det lidt noget C kode!?!

:-)
Avatar billede wisen Nybegynder
13. marts 2001 - 09:46 #9
Ja, det er fordi det er C kode. Det er selve API kaldet. Du må kunne finde en VB oversættelse :) Det var mere for at vise dig, at du skulle bruge det funktionskald...
Avatar billede wisen Nybegynder
13. marts 2001 - 09:50 #10
Ups. det er ud til, at VB\'s implementation af send er nonexistent !!

SendData Method
     
Sends data to a remote computer.

Return Value
Void

Syntax
object.SendData data

The SendData method syntax has these parts

Part Description
object An object expression that evaluates to an object in the Applies To list.
data Data to be sent. For binary data, byte array should be used.

Remarks
When a UNICODE string is passed in, it is converted to an ANSI string before being sent out on the network.

... det ser ud til at du bare skal bruge et byte array ...
Avatar billede jennemaan Nybegynder
13. marts 2001 - 09:51 #11
wisen > jeg tror at deamill bruger winsock kontrollen som følger med vb.

Der skriver han bare

Winsock1.Senddata data

/Jennemaan
Avatar billede wisen Nybegynder
13. marts 2001 - 09:55 #12
jennemaan >> Jeps...

deamill >> Jeg har fundet dette eks :

\'In the General Declarations

Private Declare Sub CopyMemory Lib \"KERNEL32\" Alias \"RtlMoveMemory\" ( _
hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Private Type TData
Data1 as String * 10
Data2 as String * 10
End Type

\'In the procedure...
Public Sub SendTheData()
Dim TDataStream as TData
Dim bytData()  as Byte
Dim hSocket    as Long

  \'Assuming gobjWinsockQ has been instantiated and Activated
  hSocket = gobjWinsockQ.Connect(\"TheHostToConnectTo\", 80)

  TDataStream.Data1 = \"12345Test1\"
  TDataStream.Data2 = \"12345Test2\"
  Redim bytData(Len(TDataStream))

  \'Copy the data from the UDT to a byte array
  CopyMemory bytData(0), TDataStream, Len(TDataStream)

  \'Ready to send the data using WinsockQ\'s SendData method
  gobjWinsockQ.SendData hSocket, bytData()

End Sub

Avatar billede deamill Nybegynder
13. marts 2001 - 11:42 #13
Det ser sku\' lidt hardcore ud! men jeg prøver at rode med det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester