Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] caricare controllo winsock nella casella degli strumenti

    Ciao a tutti sto cercando di creare un 'applicazione che connetta due computer tramite rete TCP/IP e per fare questo vorrei usare il controllo winsock (WskServer).
    Utilizzo Visual studio 2005 express e non riesco a trovarlo ne tra gli strumenti e nemmeno facendo sfoglia tra gli oggetti .Net o .Com .

    Qualcuno sà come aiutarmi?, il nome esatto del controllo che sto cercando.

    Grazie e scusate se sono stato poco chiaro (Sono un proncipiante).

    Ciao

  2. #2
    allora comincio col dirti che ormai l'architettura winsock è stata superata da migliaia di anni dal visual basic .net in quanto è stata sostituita dai Socket. Anche io all'inizio quando passai dal vb6 al vb .net provai ad utilizzare le winsock ma ho avuto grandi problemi di compatibilità con altri pc e perciò ho deciso di utilizzare la strada "Socket"..Comunque se proprio ci tieni a provarlo devi prima essere sicuro che in "C:\Windows\System32" ci sia la libreria..poi dal compilatore apri l'opzione personalizza toolbox-->Cerca--> vai nella cartella che ho detto sopra e selezioni oswnsk.ocx(mi pare che si chiama così)..

    una domanda..ma già sai utilizzare questa ocx??
    Provoca Il Più Bravo E Morirai Come Uno Schiavo

  3. #3
    Ho recuperato in internet vario materiale che penso possa aiutarmi ad utilizzare questo controllo, ma a questo punto vorrei sapere di piu riguardo ai socket.

    Quali controlli utilizzi e come per instaurare una connessione con un pc via TCP/IP ?
    grazie e ciao

  4. #4
    non ci sono problemi..allora per collegarti(come Client) io ti consiglio di utilizzare le classi TcpClient(per la connessione) e networkstream(per lo scambio di dati)..quindi dichiara subito
    codice:
     Dim client as new tcpclient
    dim netstream as networkstream
    per connetterti ad un host(es mail.tin.it) usa la seguente linea di codice
    codice:
     tcpclient.Connect("mail.tin.it", 25)
            netstream = tcpclient.GetStream()
    in questo modo il tuo pc si è connesso a mail.tin.it alla rispettiva porta 25 e ha avviato la lettura di scambio di dati.

    ora ci sono 2 strade.. per la ricezione di dati puoi usare sia i Thread sia un timer. Con i thread il soft dovrebbe essere più efficiente; tuttavia è un pò + complesso l'approccio soprattutto se sei alle prime armi e visto che stiamo realizzando un semplice client un timer va benissimo.

    detto questo..aggiungi alle linee di codice di sopra la seguente stringa
    codice:
    If tcpclient.Connected = True Then
                Timer1.Enabled = True
            End If
    e nel tick del timer
    codice:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If netstream.DataAvailable = True Then
                Dim stringar As String
                Dim bytes(tcpclient.ReceiveBufferSize()) As Byte
                netstream.Read(bytes, 0, bytes.Length)
    
                stringar += System.Text.Encoding.ASCII.GetString(bytes)
                Textbox1.Text += stringar & vbCrLf
            End If
    End Sub
    in questo modo il nostro client riceverà soltanto quando ci saranno dati da ricevere(così da evitare eccezioni)

    ora l'ultimo passo è l'invio di dati..niente di più semplice

    codice:
       Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(Invia.Text & vbCrLf)
            netstream.Write(bytes, 0, bytes.Length)
            netstream.Flush()

    spero di esserti stato d'aiuto..con questo codice puoi realzzare un applicazione simile al telnet di windows..Ciao e a presto
    Provoca Il Più Bravo E Morirai Come Uno Schiavo

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Napster
    allora comincio col dirti che ormai l'architettura winsock è stata superata da migliaia di anni dal visual basic .net in quanto è stata sostituita dai Socket
    Mi sembra che questa frase sia fonte di grande confusione ...

    Se parli di "architettura winsock" intendendo "il controllo ocx winsock del vb6" ovviamente fai una grande confusione.

    Winsocket e' l'implementazione di Windows dei socket ma non e' affatto una "architettura superata" e non puo' esserlo perche' e' cio' su cui si basa la comunicazione TCP Windows ...

    Quella che chiami "Socket" confondendoli con i socket, è semplicemente una classe del framework che usa i socket, nello specifico, nei sistemi Windows usa i winsocket ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.