[Gmsh] feature request: gmsh reads input from TCP port
Al Danial
al.danial at gmail.com
Sun Mar 12 03:43:54 CET 2006
hi Christophe,
I played with the TCP connection code for a couple of hours
and have found running the code on a single Linux machine to
work well--very cool.
Running with two machines was more difficult. Here's my setup:
- Linux machine at 198.168.1.101 on which I built v1.64.0 from source
- Windows XP machine at 198.168.1.103 using the binary of v1.64.0 from
your web site. Also has CygWin installed.
First I made sure the Windows firewalling was disabled and did some
tests with netcat going from Linux to Windows:
CygWin> nc -l -p 44122
Linux > cat cone.geo | nc 192.168.1.103 44122
The cone.geo file was transferred from the Linux box to the Windows
box just fine; the CygWin terminal window STDOUT showed the contents
of the cone.geo file. I then killed netcat on both machines by
sending ctrl-c from Linux.
Next on the Windows box I started gmsh with Options/Solver
socket name = 192.168.1.103:44122 and checked "Always listen..."
On the Linux side once again I did "cat cone.geo | nc 192.168.1.103 44122"
and this caused gmsh on Windows to crash. I figured I'd better go
back to the canned demo so I modified interactive.cpp like so
sprintf(socket, "192.168.1.103:44122");
then ran the interactive method but it wasn't able to connect:
Unable to connect to Gmsh.
I modified the code to print out the reason it failed to connect:
printf("Unable to connect to Gmsh: %d\n", _client.Connect(socket));
and got back the value -2
Unable to connect to Gmsh: -2
I then tried the "cat cone.geo | nc ..." again but this time gmsh just
ignored it. The gmsh message window said
Warning : Failed to receive body on socket: aborting
Info : Client disconnected: starting new connection
For some reason I was initially able to send something between Linux
and gmsh on Windows but it isn't repeatable; all subsequent attempts
failed. Next I will try going from Windows to Linux, will post my
findings. -- Al
On 3/10/06, Christophe Geuzaine <cag32 at case.edu> wrote:
> Al Danial wrote:
> > The examples in utils/solvers/* show how one might tie an external
> > solver to gmsh. From what I can tell, this scheme means gmsh and
> > the external solver need to run on the same machine for the socket
> > communication to work.
> >
> > What would be really nice is the capability to run gmsh on another
> > computer on a network then send it commands over TCP. You'd start
> > gmsh on Machine_A with something like
> >
> > gmsh -p 19000
> >
> > which says "wait for commands on port 19000", then from another
> > computer, Machine_B, you'd connect to Machine_A's port 19000 and
> > send it strings like
> >
> > "lc = 0.009;"
> > "Point(1) = {0, 0, 0, 9.e-1 * lc};"
> > "Point(2) = {.1, 0, 0, lc} ;"
> > "Point(3) = {.1, .3, 0, lc} ;"
> > "Point(4) = {0, .3, 0, lc} ;"
> > "Line(1) = {1,2} ;"
> > "Line(2) = {3,2} ;"
> > "Line(3) = {3,4} ;"
> > "Line(4) = {4,1} ;"
> >
> > (lines from t1.geo for example). In other words, rather than reading
> > input from a .geo file, in server mode gmsh would read input from a
> > port. The two machines merely need to be on the same network; don't
> > need to share a file system (or operating system for that matter).
> >
> > The primary benefit is that you could run gmsh on a computer that has
> > optimal graphics hardware--and tied to a massive screen in a conference
> > room perhaps--while running the solver on a cluster or some other
> > computer with beefy CPU's but little in the way of graphics.
> >
>
> Al - If you're still interested in this stuff, give version 1.64 a try:
>
> - select "Always listen to incoming connections" in Options->Solver
>
> - compile utils/solver/c++/interactive.cpp (it's a small test program
> that shows off some of the new features of the solver interface in the
> form of a command-line "Gmsh remote-control")
>
> (You can use a TCP/IP socket instead of a Unix socket by replacing
> ".gmshsock" with e.g. "127.0.0.1:44122" in Solver->Options and in
> interactive.cpp.)
>
> Take care,
>
> Christophe
>
>
>
> > I can provide demo client/server TCP code if there's a possibility
> > that this request might be implemented. -- Al
> >
> > _______________________________________________
> > gmsh mailing list
> > gmsh at geuz.org
> > http://www.geuz.org/mailman/listinfo/gmsh
> >
> >
>
>
> --
> Christophe Geuzaine
> Assistant Professor, Case Western Reserve University, Mathematics
> http://www.case.edu/artsci/math/geuzaine
>