Ma requête est sur quelle est la meilleure façon de lire / écrire à un tuyau de Linux en Java? J'utilise déjà le java.io.randomAccessfile comme puis le transmet au fil de travailleur qui le lit après chaque 2 ms comme p> Il le lit à partir de tuyau, mais je soupçonne que certains octets sont écrasés. Savez-vous comment Linux (Ubuntu) gère le tampon pour les tuyaux? P> P>
3 Réponses :
Je n'ai jamais essayé cela moi-même, mais que vous sentez bien. Les tuyaux Linux sont d'abord inscrits (FIFO) par définition. Vous ne devriez donc être capable de lire des octets dans le même ordre que vous les avez écrits - pas au hasard. Je suggérerais d'utiliser un fichier normal code> à la place et cela devrait fonctionner correctement. p>
Voulez-vous dire un fichier normal code>? C'est ce que j'essayerais d'abord aussi.
FileInputStream code> et
FileOutPutStream code> respectivement, oui
Intéressant ... Chaque didacticiel que j'ai trouvé sur des tuyaux en Java utilise des fournits aléatoires.
Les tuyaux ne sont pas gérés de quelque manière que ce soit spécial de Java autant que je sache. Vous ouvrez simplement le fichier pour écrire et écrivez-y. P>
Vous ne pouvez pas vraiment "écraser" quelque chose dans un tuyau, car vous ne pouvez pas chercher dans un tuyau. Pour la même raison, un Notez également que aléatoireAccessfile code> n'est pas le choix le plus intelligent à utiliser (puisqu'un tuyau est explicitement pas em> un fichier d'accès aléatoire). Je suggérerais d'utiliser un
FileOutPutStream code> à la place. P>
lisez () code> n'est pas garanti à lire tant que le tampon est plein! Il peut également lire un seul octet et vous devez vérifier sa valeur de retour et éventuellement une boucle pour lire le tampon complet. P>
Je pense que vous ne pouvez pas craindre après l'écriture, donc les sortiestream.flush () souvent et la lecture peut être un octet à l'heure, au moins pour voir si vos données se font passer. par exemple. Pour commencer avec Ouvrir un tuyau nommé en mode Readonly (FileInputStream) dans Process1, ouvrez-le en mode d'écriture (FileOutPutStream) dans Process2, tout ce que vous écrivez dans Process2 sera lu dans le processus1. P>
a également lu p>
http://www.tldp.org/ldp/lpg/node15.html
http://www.unixguide.net/unix/programming/2.10.5. shtml
http://www.unixguide.net/unix/programming/2.10.6. shtml p>
Quelle est la connexion à l'astérisque?
En réalité, le / dev / zap / 16 est créé par le pilote Zaptel utilisé pour l'astérisque lorsque la carte SS7 est installée sur votre machine. L'astérisque a un module qui lit ce tuyau mais est en code natif. J'essaie de faire fonctionner ce travail sur Java. Hors du sujet, mais si vous essayez d'installer Asterisk + SS7 voici mon expérience amitbhayani.blogspot.com/2009/04/asterisk-sss7.html