/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Q: WinSock [Vedr. SendData & Close]
Fra : Jan Vinten


Dato : 17-01-04 01:28

Hej gruppe,

Jeg har lavet et skide smart program (men det har man vel altid - nå,
men om ikke andet, så går det i alt sin simpelhed ud på, at en bruger
forbinder sig via et klient program til et server program.

Den password synkroniserer så og validerer passwordet.

Når det nu er et forkert indtastet kodeord gør jeg flg.:

sckConnection(Index).SendData "Invalid password"
sckConnection(Index).Close

Det skulle gerne sende en tekst til klienten om, at passwordet er forkert og
derefter lukke forbindelsen. Men min klient når ikke, at modtage
tekst-strengen - den lukker bare forbindelsen.

Hvad skal jeg have gang i her? Det er vel ikke noget med en "timer" osv,
vel?

Venligst opdater min uvidenhed!

/ Jan



 
 
Tomas Christiansen (17-01-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 17-01-04 23:22

Jan Vinten skrev:
> sckConnection(Index).SendData "Invalid password"
> sckConnection(Index).Close
....
> Det skulle gerne sende en tekst til klienten om, at passwordet er forkert
og
> derefter lukke forbindelsen. Men min klient når ikke, at modtage
> tekst-strengen - den lukker bare forbindelsen.

Prøv at indsætte en DoEvents mellem SendData og Close.

-------
Tomas


Jan Vinten (19-01-2004)
Kommentar
Fra : Jan Vinten


Dato : 19-01-04 19:58

Hej Tomas,

Tak! DoEvents er selvfølgelig lige den der gør jobbet!

Jeg takker ...

/ Jan


"Tomas Christiansen" <toc-01-nospam@blikroer.dk> wrote in message
news:buccgj$1knv$1@news.cybercity.dk...
> Jan Vinten skrev:
> > sckConnection(Index).SendData "Invalid password"
> > sckConnection(Index).Close
> ...
> > Det skulle gerne sende en tekst til klienten om, at passwordet er
forkert
> og
> > derefter lukke forbindelsen. Men min klient når ikke, at modtage
> > tekst-strengen - den lukker bare forbindelsen.
>
> Prøv at indsætte en DoEvents mellem SendData og Close.
>
> -------
> Tomas
>



Jesper (20-01-2004)
Kommentar
Fra : Jesper


Dato : 20-01-04 07:55


"Jan Vinten" <ingen_email@send_kun_i_gruppen.tak> skrev i en meddelelse
news:400c28a1$0$221$edfadb0f@dread12.news.tele.dk...
> Hej Tomas,
>
> Tak! DoEvents er selvfølgelig lige den der gør jobbet!
>

Nej DoEvents er ikke den der gør jobbet. KUN på din pc.
Clienten sidder jo ikke på din pc, så derfor skal du ind i
sckConnection_SendComplete som Morten skrev.

Jesper




Tomas Christiansen (20-01-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 20-01-04 08:20

Jesper skrev:
> > Tak! DoEvents er selvfølgelig lige den der gør jobbet!
>
> Nej DoEvents er ikke den der gør jobbet. KUN på din pc.
> Clienten sidder jo ikke på din pc, så derfor skal du ind i
> sckConnection_SendComplete som Morten skrev.

Hvad mener du med "KUN på din pc"? Enten så virker det vel, eller også gør
det ikke???

Problemet med Winsock kontrollen er, at visse ting først bliver udført, når
der udføres DoEvents (enten eksplicit eller implicit ved at der ikke er mere
at kode at udføre før næste event optræder). Derfor hjælper en DoDvents.

MEN! Det helt rigtige er, som Morten Trab foreslog, at lægge nedlukningen af
forbindelsen ind i sckConnection_SendComplete event-proceduren.
DoEvents-løsningen er kun en "lappeløsning".

-------
Tomas


Jan Vinten (20-01-2004)
Kommentar
Fra : Jan Vinten


Dato : 20-01-04 16:48

Hej Jesper,

Nu er det sådan, at jeg sender en datastreng til min klient fra serverdelen.
Når klienten modtager denne datastreng skal den returnerer et resultat.

Resultatet bliver modtaget i sckConnection_DataArrival(...). I den procedure
valider jeg dataen og hvis den data ikke er korrekt, skal den afbryde
forbindelsen til klienten.

Derfor er SendComplete ikke optimal til denne løsning... Og DoEvents gør
jobbet korrekt og det virker!

/ Jan


"Jesper" <oz5nospam@pc.dk> wrote in message
news:400cd0af$0$253$edfadb0f@dread12.news.tele.dk...
>
> "Jan Vinten" <ingen_email@send_kun_i_gruppen.tak> skrev i en meddelelse
> news:400c28a1$0$221$edfadb0f@dread12.news.tele.dk...
> > Hej Tomas,
> >
> > Tak! DoEvents er selvfølgelig lige den der gør jobbet!
> >
>
> Nej DoEvents er ikke den der gør jobbet. KUN på din pc.
> Clienten sidder jo ikke på din pc, så derfor skal du ind i
> sckConnection_SendComplete som Morten skrev.
>
> Jesper
>
>
>



Tomas Christiansen (21-01-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 21-01-04 09:16

Jan Vinten skrev:
> Resultatet bliver modtaget i sckConnection_DataArrival(...). I den
procedure
> valider jeg dataen og hvis den data ikke er korrekt, skal den afbryde
> forbindelsen til klienten.
>
> Derfor er SendComplete ikke optimal til denne løsning... Og DoEvents gør
> jobbet korrekt og det virker!

Det stemmer da vist helt ikke overens med dit oprindelige indlæg?

Men bortset fra det, så bør man vente til at man ved, via de events som
Winsock-kontrollen fyrer, at "noget" er sendt før man lukker forbindelsen.
Det vil (bør) virke hver gang.

DoEvents er en løsning som i visse tilfælde KAN risikere ikke at virke. Hvis
dit program modtager andre former for events (f.eks. hvis du klikker 100
gange på diverse knapper) mens processen med at sende og efterfølgende lukke
forbindelsen er i gang, kan du risikere at programmet ikke virker efter
hensigten.

Husk også at huske på at når du har en DoEvents i din kode, så kan "alt" ske
på dette sted. Forstået på den måde, at der er mulighed for at en virlkårlig
event-procedure (undtagen den du er i gang med at udføre) vil kunne blive
udført. Det behøver ikke at være et problem, men man skal tænke på hvad der
sker, hvis f.eks. brugeren trykker på krydset i øverste højre hjørne af ens
form, mens programmet er ved at sende.

-------
Tomas


Morten Trab (18-01-2004)
Kommentar
Fra : Morten Trab


Dato : 18-01-04 00:13


"Jan Vinten" <ingen_email@send.kun.i.gruppen.tak> skrev i en meddelelse
news:40088185$0$187$edfadb0f@dread14.news.tele.dk...

> sckConnection(Index).Close

Flyttes ind i sckConnection_SendComplete istedet...Så afvikles den først når
pågældende senddata er færdig...

--

Mvh,/Best regards,
Morten Trab
Web: http://www.blackchart.dk

Ved direkte mail, fjern da REMOVE fra adressen.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste