Newsgroup: it.comp.programmare.win32
Titolo: Sempre VB Server

Allora, il codice del mio server è il seguente:( Skusa se devi leggerne 
un'altro lupin :P )
Option Explicit
Dim nconnessi As Integer
Dim nick As String
Dim ricev As String
Dim requestID As Long
Private Sub attiva_Click()
Timer1.Enabled = True
wskServer.Close
wskServer.LocalPort = 2000
Text1.Text = wskServer.LocalIP
Text2.Text = wskServer.LocalPort
Label1.Caption = "server connesso"
wskServer.Listen
End Sub
Private Sub chiudi_Click()
wskServer.Close
Label1.Caption = "Server disconnesso"
Timer1.Enabled = False
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub command3_click()
wskServer.Close
End
End Sub
Private Sub Timer1_Timer()
Select Case wskServer.State
Case Is = 0
stato.Caption = "Chiusa"
Case Is = 1
stato.Caption = "Aperta"
Case Is = 2
stato.Caption = "In attesa"
Label6.Caption = nconnessi
Case Is = 3
stato.Caption = "Comunicazione in corso"
Case Is = 4
stato.Caption = "Risoluzione host in corso"
Case Is = 5
stato.Caption = "Host risolto"
Case Is = 6
stato.Caption = "Aperto"
Case Is = 7
stato.Caption = "Connesso"
Case Is = 8
stato.Caption = "In chiusura"
Case Is = 9
stato.Caption = "Errore di connessione"
End Select
End Sub
Private Sub wskServer_DataArrival(ByVal bytestotal As Long)
wskServer.PeekData ricev
Text2.Text = ricev
End Sub
''da rivedere
Private Sub wskServer_ConnectionRequest(ByVal bytestotal As Long)
nconnessi = nconnessi + 1
wskServer.LocalPort = 2000
wskServer.Accept requestID
wskServer.SendData "ciao!"
End Sub
Lasciando perdere il fatto che ci probabilmente ci sono cose inutili che 
ho messo per prova, vorrei sapere perchè all' istruzione
wskServer.LocalPort = 2000
wskServer.Accept requestID
vedi poche righe sopra
( ah, togliendo wskserver.localport=2000 la cosa non cambia l'errore si 
sposta nell' istruzione sotto)
mi da errore del tipo: "istruzione non valida in questo stato ".Al 
momento dell' errore, lo stato corrente del server è " in attesa ", ed 
in più sto cercando di connettermi. Penso che l'errore sia in questo 
codice, se pensate che possa essere il client fatto da me a crear 
problemi, fatemelo sapere.
ciao a tutti
Sapete mica dove posso trovare guide sui winsock in VB? se qualcuno 
vuole spiegarmi bene qualcosa lo ringrazzzio!

Prima cosa: Ecco la routine da modificare
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
   wskServer.Close
   wskServer.Accept requestID
   wskServer.SendData "ciao!"
End Sub
In pratica devi prima chiudere wsk e poi puoi accettare la richiesta di
connessione.
Seconda cosa: non puoi gestire connessioni multiple con un solo controllo
winsock, perchč nel momento in cui l'unico che c'č accetta una richiesta
di connessione, il tuo programma non č piů un server.
A questo punto dovrebbe esserci un altro controllo pronto ad ascoltare
(sempre sulla stessa porta).
Questo problema lo puoi risolvere in due modi:
o in fase di progettazione crei vari controlli a seconda di quanti te ne
servono. in questo modo ne avrai un numero fisso allocato durante tutto il
programma.
Oppure (scelta migliore) crei un solo controllo in fase di progettazione e
tramite codice crei una matrice di controlli winsock, in modo che, sempre
via codice, puoi aggiungerne e toglierne quanti ne vuoi (nei limiti della
memoria...ovviamente).
Lupin
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:3D370014...@tin.it...
[cuttone]
un solo consiglio: usa i rientri.
ciao, g.