Unix Domain Socket - Question about work around

Since Unix Domain Sockets are platform dependent and Java is platform independent, it does not support it.
However, I am sure some of you have worked with them and found some good work around.
Elsewhere Jtux was suggested as a possible fix. However, I have not seen any good testimonials to it working. Also, if there are any security issues with this software. The website is here: http://www.basepath.com/aup/jtux/
Does anyone have any other suggest?
Thanks.

I am modifying a current app. I must use the Unix
Domain Sockets. I have no choice in the matters. It's
for security reasons that they must be left in place.I can only guess that you do not understand my suggestion.
The proxy does a domain socket to regular socket - just a pass through. You write this in C/C++.
In your java app, as one option, you use Runtime.exec() to start the proxy. Then you use a java socket to connect to it. You can pass options to the proxy to control the socket behavior on both ends.
In terms of usage there are a number of variations on the above.

Similar Messages

  • Open unix domain socket (Linux)

    How do I open a unix domain socket under linux using Labview (7.1).
    I would like to write messages to /dev/log.
    thanx
    Message Edited by Dennisvr on 01-27-2006 04:20 AM

    Dennisvr wrote:
    Pipes and sockets are
    different things. At first I thougt they could be the same too, and I
    even tried opening it using the LabVIEW pipe functions, but that didn't
    work.   Look at this link, it explains how it works, even with some examples: http://www.ecst.csuchico.edu/~beej/guide/ipc/usock​.html
    I
    see. Well LabVIEW does not support this type of socket. The only socket
    interface it has already is the one used for its TCP/UDP implementation
    and that is using sockaddr_in internally to bind. As such you have two
    options:
    1) Write your own domain socket interface writing a shared library and the according interface VIs.
    2) Or use TCP/IP interprocess communication instead.
    In terms of functionality TCP/IP will be the same as what you could
    possibly get from domain sockets. The only reason to use domain sockets
    instead of TCP/IP sockets might be that domain sockets have a
    more  optimized data transfer since they do not take precautions
    for remote data transfer. If you really need this (possible?) increased
    performance you will have to do some work.
    However domain sockets seem little known and might be a new technology.
    So I would make sure it is properly supported on all the potential
    system you try to use this before taking the plunge to write your own
    shared library interface to call through the Call Library Node.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Unix Domain socket, ECONNREFUSED causes?

    I would like to have a complete list of possible causes for connect(3SOCKET) to return ECONNREFUSED. I have a pthreads application that fails a test case due to connection refused, and none of the usual causes seem to make sense.
    - socket path exists but nobody is listening on the socket - pfiles shows that the server side has the socket descriptor open
    - too many connections - pfiles and lsof show that this is not the case - very few connections open
    - wrong type of socket? debugger shows this is not the case
    - wrong file permissions on socket? ls shows that this is not the case
    What other causes for ECONNREFUSED could there be?
    thanks
    --donb                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Yes what does the term "Unix Domain Socket" refer to.
    I can think of several possibilities....
    1. It just means "socket". So you use the socket stuff.
    2. It is port specific/ip range specific, so you use the port/ip with the regular socket stuff.
    3. It is a layer in regular TCP/IP (like VPNs) so unless the layer itself is being managed a java app doesn't need to do anything.
    4. It is a different protocol (or with extended features) from a regular TCP socket. In that case you would have to write your own socket layer via JNI to handle it.

  • Client connection using UNIX Domain Socket

    Hello all,
    I am getting the following error when I try to connect from a 32-bit TimesTen client to the 64-bit TimesTen data manager via UNIX domain socket.
    NOTE: I can make SHM connections from 32-bit client to 64-bit server though.
    # ttisqlcs test_uds
    Copyright (c) 1996-2007, Oracle. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
    All commands must end with a semicolon character.
    connect "DSN=test_uds";
    08001: Unable to connect to data source (DSN: test_uds; Network Address: ttLocalHost; Port Number: 18003). Please refer to TimesTen Server log to see if connection over UNIX domain socket is allowed at this point in time
    The command failed.
    Done.
    Both 32-bit client and 64-bit server processes run on the same box. I do not see any errors in the user or server log files.
    Entry in sys.ttconnect.ini file
    [ttLocalHost-tt_704_dev]
    Description=TimesTen Server
    Network_Address=ttLocalHost
    TCP_PORT=18003
    Entry in sys.odbc.ini file
    [test_uds]
    Driver=/ttsoft/TimesTen32/TimesTen/tt70_32/lib/libttclient.so
    TTC_SERVER=ttLocalHost-tt_704_dev
    TTC_SERVER_DSN=test
    Thanks,
    Senthil.

    Could this be bug 4950822? This was documented in the 6.0.3 Release Notes "Known Limitations" section:
    "On Unix, when using ttlocalhost, a client of one TimesTen instance cannot connect with a server of another TimesTen instance. The workaround is to use ttShmHost (shared memory IPC) or localhost (127.0.0.1)."
    The error message received matches the one you're seeing.

  • Unix Domain Socket

    Hi,
    How can Java connect to a Unix Domain Socket?
    Help please!

    Yes what does the term "Unix Domain Socket" refer to.
    I can think of several possibilities....
    1. It just means "socket". So you use the socket stuff.
    2. It is port specific/ip range specific, so you use the port/ip with the regular socket stuff.
    3. It is a layer in regular TCP/IP (like VPNs) so unless the layer itself is being managed a java app doesn't need to do anything.
    4. It is a different protocol (or with extended features) from a regular TCP socket. In that case you would have to write your own socket layer via JNI to handle it.

  • Bundle export/import questions and work arounds

    Hello,
    I've begun to use bundles to migrate components from our test server to our production server. Bundles are a great feature which i missed the last time i worked with N1SPS a few years back. But i've found a few things that i had to work around.
    1. It would be very nice to be able to set version to something like "latest" in the bundle, so i always get the latest version of all components when i do an export.
    2. The bundle should be able to export in a certain order, first folder then components, then containers and lastly plans. Today i have to add everything to the bundle in this order or change the XML-file in the jar afterwards. A function to change the order in the bundle would also help.
    3. Then the bundle is imported the container reefers to components of version 1.1 for some reason (in this case a directory), but it will import that component to version 1.0? I had to change the version reference in the XML to get this to work.
    Any workaround or is it all RFE:s and bugfixes?
    Regards
    Henrik

    Thank you for your fast reply. Is (1) something that could be object for a RFE? I think it's a common work flow to export the latest versions from a development server to a production server.
    Regards
    Henrik

  • Unix domain sockets: How to name them? And where to put them?

    I am using unix sockets for inter-process communication in a C++/gtkmm project.
    Are there naming conventions and conventions about where to place sockets in the filesystem? In all example code I found, dummies like /home/user/mysocket were being used.
    If there are not any conventions: Would it be sensible to put the sockets in /tmp/ and compose the names of the name of the program which uses the concerning socket, and its PID? (The latter also depends on my use case, of course; from that point of view, it seems sensible.)

    @Franek:  KDE applications place their sockets (through KDE API, of course) in "/tmp/ksocket-foo/bar__0", where "foo" is the user name, "bar" the application name and "0" an increasing counter (in case an application creates more than one socket).  Emacs places its server socket in a similar manner "/tmp/emacs1000/server", where "1000" is the UID.
    I'd use emacs' name scheme, e.g. "/tmp/bar1000/what_the_socket_is_for", where "bar" is the application name again. 
    However, do not place sockets directly in "/tmp/". For one thing, it just clutters this global directory, but more importantly it's unsafe, as every other user can inspect these sockets.  Create a directory within "/tmp/" and restrict its access rights to the owner (mode 700).  Thus other users can't inspect the sockets within that directory.  Of course, the access rights of the sockets themselves must also be limited.
    Last edited by lunar (2011-10-12 18:59:32)

  • Unix domain socket connection limits ?

    Hi All,
    I'm trying to handle more than 32 conn. connections on a unix socket domain on Solaris 8 or 7. I couldn't able to pass 32 connection limit. As far as I know, this was a limit for Solaris 2.5.1 or 2.6. I raised the tcp_conn_req_maxq and tcp_conn_req_maxq0 values to greater than 1024 and it didn't help out.
    Is there anyone who knows how to pass this limit ?
    Best Regards,
    P.S. I have 1GB ram on each machine.

    The default limit is 256. Try to look plimit command, which change thats limits.

  • Question about working with an audio interface

    Hi
    I just bought an audio interface (tascam us-122l) and i have logic express 8 installed, so i've connected my guitar and my keyboard (via MIDI) to the audio interface, and i've read the user's manual but i still don't know how things work...
    Is it possible to use the built-in speakers on my imac as a sort of "amplifier". So when i play on my guitar or keyboard, i can hear what i'm playing trough my imac.
    This is what i did so far;
    - installed the drivers and updated the firmware
    - system preferences > sound > input and clicked on my audio interface (US-122L)
    - LE8 > preferences > audio > devices > and i selected the US-122L as device
    This might be a stupid question but i just want to record songs.
    Thnx anyway.

    Logic audio preferences assumes you want to use your interface as an output for monitor speakers - the standard way and the best way given that your internal spekers will be neither loud enough or good enough to act as great monitors. If you don't have speakers you will be able to hear what you have recorded through headphones connected to your interface. If you want to listen from imac speakers or audio out you do indeed need to change to "built in input" - this is just a name logic uses to refer to your imacs internal sound card (including input and output).
    To separate the input and output for different devices you need to set up your aggregate device, which you should be able to do, though you say you can't.

  • Buffered Reader Question about wrapping around another Reader

    I'm reading about BufferedReaders and in the API the following paragraph reads:
    In general, each read request made of a Reader causes a corresponding read request to be made of the underlying character or byte stream. It is therefore advisable to wrap a BufferedReader around any Reader whose read() operations may be costly, such as FileReaders and InputStreamReaders. For example,
    BufferedReader in = new BufferedReader(new FileReader("foo.in"));
    I was wondering if somebody could explain their reasoning in slightly less complicated terms...I can't really figure out what their reasoning is. Thanks

    If every time you wanted to read a character, you had to talk to the hard disk device, it would be very slow. This is because communicating with the disk is thousands of times slower than communicating with main memory.
    The buffered reader reads in chunks, buffers those data, and allows you to request them one character at a time.

  • Question about working on different computers on a project?

    I'm going to have video footage stored on an external Firewire 800 hard drive and I'm going to work on a project in a lab that has 30 different Macs, so I will not always be working on the same computer.
    Do I need to change any settings each time I get on a new Mac or will the project file always open up the media each and every time I double click on it or open it in CS6?
    Thanks.

    1. When you say you assign a unique drive letter for each external, do you mean you are simply naming the hard drive itself so each of your externals shows up with its own unique name OR are you referring to something else?
    In Windows, all drives are deliniated by "drive letter." This is set in the OS, and is part of that absolute Path, such as Z:\[Project Name]\Video. When I get a new external, I set it's drive letter in the OS of each computer and then add a label to it. In Windows, each HDD, whether internal, or external, has an I.D. number, and if one has set the drive letter, when the OS sees that I.D., it knows what to do. I started with Z:\, and worked backward. As my workstation has a bunch of HDD's, I ran out of drive letters, and just started over. However, that means that I cannot have both of my Z:\ externals hooked up at the same time. That, however, is not a problem, as I have each one marked, and they have unique Projects on them, so I should never need both Z:\'s at the same time. Mac's do things a bit differently, and I am certain that I would get it wrong, so will let a Mac-user discuss that with you.
    Again on Windows, if one has NOT set the drive letter, then the OS will assign one, and that will depend on the existing drive letters used on the system, and the order that any external devices are plugged in and turned ON. As a for instance, let's say that I plug in that Z:\, into a computer where it has not yet been set to Z:\, it will usually be assigned the next drive letter, for that computer, so it might be F:\, and then my absolute Paths are broken, since they point to Z:\.
    Good luck,
    Hunt

  • Help me with some question about Worker/Service/Task in JavaFx 2

    I have read some articles in the forum adout mutithreading in JavaFx2, and now I know if I want to do some long-run jobs, i should use Service/Task.
    But my application needs a function like this:
    1. here is a long-run job(something like getting data from database or other resources);
    2. If I clicked a button, then the job started and get the data.
    3. When the job is done, I show the data in the tableview of my JavaFx application.
    4. then the job waiting some random time(such as 100 seconds).
    5. then the job started again automaticlly.
    so, the steps are 2->3->4->5->3->4->5->3->4->5->........
    so, the important things is that the job runs many times automaticlly.
    I know I should implements the job as a Service or Task in javaFx, But where should I put my "while(true){ job.start();sleep(random_time);}" loop code to make the job start automaticlly after some random sleep time.
    I wonder what is the best practice for this use case.
    My english is poor, but i hope you can understand what i'm dealing with.
    Thank you very much!
    Edited by: user9529194 on 2011-12-18 下午8:20

    Hi,
    Based on the response from John,
    I think you can acheive the functionality as below.
    // Creating the tableview.
    TableView<Person> personTable = new TableView<Person>()
    // Instantiating the personlist.
    ObservableList<Person> persons = FXCollections.observableArrayList();
    // Setting the list to the table.
    personTable .setItems(persons)
    final Button button = new Button("Refresh");
    final Timeline repeatTimeLine = new Timeline(
          new KeyFrame(Duration.seconds(100), new EventHandler<ActionEvent>() {
                @Override
             public void handle(ActionEvent event) {
                    // Call the service method to update the list.
                       PersonService.updatepersons(persons );
    button.setOnAction(new EventHandler<ActionEvent>() {
         @Override
         public void handle(ActionEvent arg0) {
                 repeatTimeLine.setCycleCount(Timeline.INDEFINITE);
                 repeatTimeLine.play();
    });And in the Service class...
    public void updatepersons(final ObservableList<Person> persons){
              final Task<List<Person>> getPersonTask = new Task<List<Person>>() {
              @Override
              protected List<Person> call() throws Exception {
                   return getPersonService().getPersons();
         getPersonTask .stateProperty().addListener(new ChangeListener<State>() {
              @Override
              public void changed(ObservableValue<? extends State> arg0, State arg1, State newState) {
                   switch (newState) {
                   case SUCCEEDED:
                        persons.clear();
                        persons.addAll(getPersonTask .getValue());
                        break;
                   case FAILED:
                        break;
         ThreadManager.getInstance().schedule(this.getClass(), getPersonTask );
    }I hope this code can give you some idea.
    Happy Coding !! :)

  • QUESTION ABOUT WORKING WITH OUT A MIDI CONTROLLER

    Can some one tell me how to use the computer keyboard to play the instruments?

    I did this without one in Garageband, anything's possible!!
    http://www.realworldremixed.com/remix.php?remix_id=Hjkd9Nqni4zx1ZLI
    Best
    Steve

  • Questions on working in real time

    Hi.  Just have a couple of questions about working in real time, actually on the swf.
    Firstly, I want to create a sort of drag and drop interface.  Is it possible to have one stage act as two seperate stages?  By this, I mean is it possible to have the left hand side of my stage hold all the components, they get dragged to the right hand side of the stage and placed anywhere, the user can then click save, and only the right hand side of the stage is saved?
    Secondly, I am testing a few things out.  What would I do to get a type of free transform on an image on the stage in real time, in the swf?  So once the movie is played, the user could then resize any image how they like by dragging a corner of the image..
    Cheers for any advise.

    What I would like is the movie to display to the user.  When they see the movie, it looks like the screen is split in two.  On the left hand side of the screen will be the components which can be dragged and dropped.  The right hand side of the screen will be a birthday card, whereby the users can drop and drag components to personalise the card.  I then want the user to be able to save the card, but a normal save will save the whole screen, including the components side of the screen.  All I want is the right hand side of the screen saved, where their card has been created.  Would this be done with two movies, and communication between the two.  Or is this possible to do on just one stage?

  • Question about Domain file size...

    I have a dot Mac account, and my iDisk capacity is 1 Gb.
    As I regularly back-up my Domain file from my G5 iMac to a FW external drive that sits on my desk, I have just noticed that the file size is now just over 1 Gb.
    Can someone please explain to me why I still have almost 700Mb left on my iDisk, yet my Domain file size is over 1 Gb?? Obviously, there must be 'internal' files that aren't copied to the iDisk.
    Thanks,
    Rachel.

    Wow, that's quite a discrepancy. 1gb Domain vs. 300mb site? Well suffice it to say that the Domain file contains all the information that is needed to generate your site. But it makes me curious too why you have such a large discrepancy. Do you have a lot of video on your site?
    My site is only about 50-60mb and my Domain is roughly the same size. When I first started using iWeb, I used to poke around inside the Domain file quite a bit more than I do now. You can open up your Domain file by Control-clicking it and selecting "Show Package Contents." At one point early on when I was blithely dragging and dropping stuff into iWeb and publishing just for experimentation, I noticed that even after I deleted images or EVEN WHOLE PAGES, that sometimes the Domain file would still contain images and quicktime movies left over from the deleted pages. I didn't know what was going on and actually tried to delete the "old" items from the Domain file, but I ended up with a non-functional Domain file...lots of error messages saying it was missing this and that. So I started over completely with a new Domain file. I also noticed at the time that my Domain file was several megabytes larger than my site.
    Since then, I have been very careful only to drag items to iWeb that will actually be used. The Domain-to-site size ratio has stayed pretty much 1:1. So I chalked up my earlier experience as a fluke. I don't know. Maybe there is an inconsistency somewhere. In fact, do a search here on "Domain file optimizing" or "Domain file bloat" and you may be able to find my questions about the issue. I never did get any responses, though.

Maybe you are looking for

  • Capture Now Freezing

    I just got a Canopus ADVC 110. Everything connects fine and works well. I can moniter play and watch video in the capture windo. I have my VCR connected to the converter via RCA then to the computer with FireWire. When I try to capture "now" the wind

  • Designer 9.0.4.6 (Repository 4.0.12.97.6) on Linux?

    Is there ANY way to get Designer 9.0.4.6 for LINUX? Or Is there ANY Designer for LINUX working with repository 4.0.12.97.6? I'm tired of downloading Developer Suites 9.x & 10.x and wondering which version of Designer will be inside and if there is a

  • Performance problem at bulk insert with spatial index

    Hi, I have a table with SDO_GEOMETRY. Insert without spatial index is very fast, but with active spatial index it's very slow. So for the first big import of data, I can drop the index, import the data and again create the index. Thats 10 times faste

  • Date Format in Leave Request

    Hi All, We are using ESS on Portal, with EHp3. In leave request we want to change the date format (From Date and To Date) from MMDDYYYY to DDMMYYYY. In back-end we are maitaining the date format as DDMMYYYY for the R3 User. Dont know where we maintai

  • Editing rows and columns in alv reports in webdynpro abap

    how edit row and columns in webdynpro abap ? can i add colors to salv repotrs for below and above range of values  how ? if possible send source code for it.............