PDA

View Full Version : [VB .net] Problema Winsock


bio n3t
23-03-2008, 16:56
ciao a tutti, da poco ho iniziato a programmare in vb.net e da 3 giorni ho iniziato a fare programmi rivolti al web... perņ ho un problema per quanto riguarda i winsock... leggendo varie guide su internet si parla solo di vb6 e non di .net perciņ chiedo a voi:
sto facendo un programma semplicissimo nel quale il server rimane in listening sulla porta 2323... con telnet mi collego a quella porta e il programma rileva che sto richiedendo una connessione... il problema sorge quando il server deve accettare la richiesta per attivare l'evento "ConnectEvent"... nelle guide si parla di un banale: "winsock.accept(requestID)" ma se lo metto mi da errore (requestID non dichiarato) e quindi non so dove andare a prendermi quel valore! spero che qualcuno mi sappia dare una risposta... grazie ciao! :)

bio n3t
24-03-2008, 10:39
nessuno sa niente? :cry:

okay
24-03-2008, 11:06
ciao a tutti, da poco ho iniziato a programmare in vb.net e da 3 giorni ho iniziato a fare programmi rivolti al web... perņ ho un problema per quanto riguarda i winsock... leggendo varie guide su internet si parla solo di vb6 e non di .net perciņ chiedo a voi:
sto facendo un programma semplicissimo nel quale il server rimane in listening sulla porta 2323... con telnet mi collego a quella porta e il programma rileva che sto richiedendo una connessione... il problema sorge quando il server deve accettare la richiesta per attivare l'evento "ConnectEvent"... nelle guide si parla di un banale: "winsock.accept(requestID)" ma se lo metto mi da errore (requestID non dichiarato) e quindi non so dove andare a prendermi quel valore! spero che qualcuno mi sappia dare una risposta... grazie ciao! :)

Private Sub winsock_OnConnectionRequest(ByVal requestID As Integer) Handles winsock.OnConnectionRequest
winsock.Accept(requestID)
End Sub

requestID č un numero intero che corrisponde al client connesso... 0 o 1 o 2 o 934 ecc ecc. diciamo il canale.

prova a scrivere:
winsock.Accept(0) oppure winsock.Accept(1)

nuovoUtente86
24-03-2008, 12:00
In effetti il problema sembra quello.Puoi utilizzare semplicemente un contatore per i client oppure una funzione tua piu complessa che abbini un ID ad ogni client che magari puo servirti in maniera univoca per identificarli.

bio n3t
24-03-2008, 19:48
intanto vi ringrazio per avere risposto... per quanto riguarda il problema: per prima cosa l'evento OnConnectionRequest non lo accetta come evento valido.. secondo il codice che viene generato automaticamente quando clicco sull'evento ConnectionRequest č questo:

Private Sub ws_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles ws.ConnectionRequest

End Sub

quindi il parametro RequestID non posso ricavarlo da li...
un ultima cosa.. ho provato a scrivere l'evento come mi hai consigliato tu (mettendo come parametro solo "byval requestID as integer") ma il programma non riesce a rilevare l'evento...
non so cosa fare vi prego di aiutarmi perchč sta cosa č alla base di una serie di programmi che vorrei fare :cry: grazie!

bio n3t
25-03-2008, 12:59
vi prego rispondete :(