Italian named-pipe network interprocess connection

micro

Well-Known Member
Licensed User
Longtime User
Salve ragazzi
probabilmente suonerà strano il titolo del thread ma è proprio così.
Devo interfacciarmi con un programma di lettura ottico (laser) che crea un server virtuale
chiamato Lasertex_Pipe_Server_89 che dovebbe fornire quando un client si connette, il dato letto sottoforma di stringa.
Il problema è che non è il classiso server a cui accedi con un socket infatti qui non serve la relativa porta.
Il fornitore dice che ci si accede con le Api di Win con la funzione CreateFile per la connessione e ReadFile per la lettura.
Io in B4J conosco RandomAccessFile ma non saprei come acccederVi con le proprietà/funzioni della libreria come apro lo stream con Lasertex_Pipe_Server_89 (è sempre in locale)?
Vi allego alcune info

C# client:
https://docs.microsoft.com/en-us/do...-pipes-for-network-interprocess-communication



General description of pipe IPC:
https://docs.microsoft.com/en-us/windows/win32/ipc/named-pipes

Grazie a tutti
 
Last edited:

micro

Well-Known Member
Licensed User
Longtime User
Ringrazio tutti ed in particolare Star per i suggerimenti dati
E' stato più semplice di quanto pensassi.
Allora buttata li come codice giusto per testare, ma è da affinare:
B4X:
Dim rd As RandomAccessFile
Dim b as boolean = File.Exists("\\.\pipe\", "Lasertex_Pipe_Server_89")
If b then
   rd.Initialize("\\.\pipe\", "Lasertex_Pipe_Server_89", True)
   Dim buff(100) As Byte
   rd.ReadBytes(buff,0,100,0)
   TextField1.Text = BytesToString(buff,0,buff.Length,"UTF8")
End If
In pratica "\\.\pipe\" è il percorso del server virtuale, "Lasertex_Pipe_Server_89" il file in memoria su cui scrive
 

amorosik

Expert
Licensed User
Ringrazio tutti ed in particolare Star per i suggerimenti dati
E' stato più semplice di quanto pensassi.

Pure a me sembra semplice fare una pizza quando guardo il mio pizzaiolo di fiducia
Poi vado a casa, provo io, e non so come mai ma mi vien fuori una roba che non e' neanche lontanamente parente di una pizza
Credevo fosse piu' semplice di quanto pensassi

Voglio dire, spesso sottovalutiamo le difficolta' che incontriamo semplicemente perche' riusciamo a risolvere il problema
In realta' poi realizziamo dei discreti lavori, usabili durante le attivita' di tutti i giorni e quindi di grande utilita'

Alcuni poi sono dei veri artisti, lo vedi dal codice
Per la maggior parte siamo dei buoni artigiani, che lavorando un po' di mano un po' di capoccia, alla fine si tira fuori la pagnotta
Inzomma, non e' semplice, il problema (in generale) e' dal complesso al molto complesso
Per fortuna c'e' la comunita' che riesce ad appianare tanti piccoli ostacoli, che altrimenti per la maggior parte di noi sarebbero stati insormontabili
E quindi , in questo caso un sentito ringraziamento a @star, che non conosco, ma fa piacere sapere che da qualche parte c'e'
E come lui tutti gli altri vip (inteso come esperti negli ambienti B4x) che bazzicano qua dentro
 
Top