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

    [VC++ 2010] Porta seriale su Ethernet

    Salve, dovrei realizzare un'applicazione con Visual Studio 2010 in C++, che si connetta tramite ethernet ad una macchina per le rilevazioni di dati metereologici, questa invia i dati ogni 10 min su ethernet tramite un adattatore porta seriale-ethernet. Io ovviamente l'unica cosa che ho è l'indirizzo ip e la porta della macchina remota. Sapete darmi qualche spunto su come iniziare? Tipo come connettermi alla macchina, come leggere i dati...
    Vi ringrazio anticipatamente e se volete qualche altra informazione non esitate a chiedere.

  2. #2
    Puoi usare i socket con il protocollo TCP.
    Il codice da usare dipende dal SO, ma visto che usi VS, il software dovresti farlo su windows.
    Quindi ci sono le librerie winsock2 (in C). Qui trovi degli esempi.
    lolide
    Java Programmer

    Informati

  3. #3
    Ti ringrazio della risposta. Uso Windows 7 64 bit, il problema di utilizzare le socket, è che si presume che dall'altra parta ci sia un server che accetti la connessione ed invii i dati, nel mio caso invece dall'altra parte ho una macchina che invia ininterrottamente dati ogni 10 min su ethernet attraverso un adattatore porta seriale-ethernet. Non so proprio dove andare a parare Spero di essermi fatto capire.

  4. #4
    Originariamente inviato da beltramex
    Ti ringrazio della risposta. Uso Windows 7 64 bit, il problema di utilizzare le socket, è che si presume che dall'altra parta ci sia un server che accetti la connessione ed invii i dati, nel mio caso invece dall'altra parte ho una macchina che invia ininterrottamente dati ogni 10 min su ethernet attraverso un adattatore porta seriale-ethernet. Non so proprio dove andare a parare Spero di essermi fatto capire.
    Uhm.... nel primo post hai detto di avere l'IP della macchina remota. Comunque in che modo vorresti comunicare con la macchina remota senza un server, un servizio che sia in ascolto per le tue richieste?
    Ovviamente devi scrivere un server che sia in ascolto sulla macchina secondo protocollo TCP, a cui poi il tuo client si potra' connettere.
    Se non puoi, allora devi chiarire di che "macchina" si tratta, magari ha qualche server con un suo protocollo e ci sono dei driver.
    lolide
    Java Programmer

    Informati

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    sei sicuro che non sia un semplice extender?
    Perchè, spesso, sono solo degli "scatolotti" che, montati in coppia, consentono di allungare il segnale seriale fino a 90 metri, tra l'altro veicolandolo sui normali cavi di rete.

    Altre volte (e probabilmente è il tuo caso) hanno dei veri e propri serverini interni, cui ci si collega con TCP o UDP (alcuni perfino telnet).
    ---
    Verifica, in primis, che tipo di "adattatore" state utilizzando; certi modelli creano perfino una porta seriale "fittizia" (con un opportuno driver), sicchè lato applicazione vedi i dispositivi come effettivamente collegati.

    sarà mica un perle?

  6. #6
    Grazie delle risposte. Allora è come dici tu c'è un server a cui mi collego con un indirizzo ip e una porta. Quello che non riesco a capire è, una volta creata la socket, come faccio a leggere i dati che mi vengono inviati ogni 10 min?
    Grazie ancora.

  7. #7
    Originariamente inviato da beltramex
    Grazie delle risposte. Allora è come dici tu c'è un server a cui mi collego con un indirizzo ip e una porta. Quello che non riesco a capire è, una volta creata la socket, come faccio a leggere i dati che mi vengono inviati ogni 10 min?
    Grazie ancora.
    Ma è un server oppure un client? Cioè se fosse un client, forse ha una configurazione per impostare l'ip del server a cui inviare queste info, oppure è un server che invia a tutti i client collegati dei dati ogni 10 minuti.
    Dipende tutto da cosa sia questa "macchina". Se non hai la possibilita' di programmarla, devi leggere la reference (è possibile anche che usi un software proprio con un driver, che usi un protocollo proprio, non necessariamente il TCP ecc...)
    lolide
    Java Programmer

    Informati

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da beltramex
    Grazie delle risposte. Allora è come dici tu c'è un server a cui mi collego con un indirizzo ip e una porta. Quello che non riesco a capire è, una volta creata la socket, come faccio a leggere i dati che mi vengono inviati ogni 10 min?
    Grazie ancora.
    Solitamente in questi casi uso UDP, proprio per evitare rotture di balls.

    Come fai a leggere i dati? Tipicamente possono funzionare in entrambe le modalità (server o client) su socket TCP RAW.

    Ma la versione breve è "se non si ESATTAMENTE a quale dispositivo devi collegarti sono dolori"

    Già che ci sei fai un nmap, così ti fai un'idea di quali "servizi" ha.

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.