Welcome Guest ( Log In | Register )

> Access AMIP socket server from *nix
uplate
post Oct 10 2007, 02:03 AM
Post #1


Member
**

Group: Members
Posts: 21
Joined: 10-October 07
Member No.: 391



Hi, I am interested in trying to access AMIP from *nix. It appears that AMIP server creates a TCP socket connection that should be able to be accessed remotely. Can you give some indication on how this could be done?

I've tried with socket and telnet, but both indicate that the AMIP hosting machine refuses the connection.

My setup:

[WIN]
AMIP Server:40581

[NIX]
Client access:
`telnet WIN 40581`
`socket WIN 40581`

Thanks
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Replies
uplate
post Nov 2 2007, 01:36 AM
Post #2


Member
**

Group: Members
Posts: 21
Joined: 10-October 07
Member No.: 391



Hey again,

so i'm a little stuck trying to implement any kind of ClientService. I know that AMIP on my windows machine is properly transmitting commands and events, because when i run a socket tool, i get output:
CODE

[uplate@~/devel/src/narc/src]> socket -sl 60334
ClientServiceC//describe $active np: !!! - Heart Of Hearts [06:02m/320kbps/44kHz]

if i run a program to set up an event listener, i also see stuff appear when i hit play or pause in winamp, or send a play/pause command from my *nix box using MyService IDL.

however, when i try to run the following code i always get a core dump. it starts up fine, but then segfaults when i take any action in amip (play/pause/change song/etc...):

CODE

/*
* C++ headers
*/
#include <RCF/Idl.hpp>
#include <RCF/RcfServer.hpp>
#include <RCF/TcpEndpoint.hpp>
#include <iostream>

/* AMIP IDLs */
#include "amip/ClientService.hpp"

class NarcService
{
  public:
  void exec( std::string cmd )
  {
    std::cout << "Got exec" << std::endl;
  }
  void event( unsigned int code )
  {
    std::cout << "Got event" << std::endl;
  }
};

int main()
{
  NarcService narcService;
  RCF::RcfServer server(RCF::TcpEndpoint(60334));
  server.bind<ClientService>(narcService);
  server.startInThisThread();
  return 0;
}


then this occurs when i create an event from winamp or a MyService program:
CODE

[uplate@~/devel/src/narc/src]> ./narcserver
zsh: segmentation fault (core dumped)  ./narcserver


here is the gdb backtrace:
CODE

Starting program: /usr/home/uplate/devel/src/narc/src/narcserver
warning: Unable to get location for thread creation breakpoint: generic error
[New LWP 100040]
[New Thread 0x8093000 (LWP 100086)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x8093000 (LWP 100086)]
0x2825cee9 in RCF::MethodInvocationRequest::decodeFiltered ()
   from /usr/local/lib/librcf.so
(gdb) bt
#0  0x2825cee9 in RCF::MethodInvocationRequest::decodeFiltered ()
   from /usr/local/lib/librcf.so
#1  0x28258c22 in RCF::MethodInvocationRequest::decodeRequest ()
   from /usr/local/lib/librcf.so
#2  0x28274164 in RCF::RcfServer::onReadCompleted () from /usr/local/lib/librcf.so
#3  0x2828eed8 in RCF::TcpServerTransport::cycleRead ()
   from /usr/local/lib/librcf.so
#4  0x2828f96e in RCF::TcpServerTransport::cycle () from /usr/local/lib/librcf.so
#5  0x2828fdc8 in RCF::TcpServerTransport::cycleTransportAndServer ()
   from /usr/local/lib/librcf.so
#6  0x28303f06 in boost::_mfi::mf3<bool, RCF::TcpServerTransport, RCF::RcfServer&, int, bool const volatile&>::operator() () from /usr/local/lib/librcf.so
#7  0x28302eb6 in boost::_bi::list4<boost::_bi::value<RCF::TcpServerTransport*>, boost::reference_wrapper<RCF::RcfServer>, boost::arg<1> (*)(), boost::arg<2> (*)()>::operator()<bool, boost::_mfi::mf3<bool, RCF::TcpServerTransport, RCF::RcfServer&, int, bool const volatile&>, boost::_bi::list3<int&, bool const volatile&, bool&> > ()
   from /usr/local/lib/librcf.so
#8  0x283003b5 in boost::_bi::bind_t<bool, boost::_mfi::mf3<bool, RCF::TcpServerTransport, RCF::RcfServer&, int, bool const volatile&>, boost::_bi::list4<boost::_bi::value<RCF::TcpServerTransport*>, boost::reference_wrapper<RCF::RcfServer>, boost::arg<1> (*)(), boost::arg<2> (*)()> >::operator()<int, bool const volatile, bool> ()
   from /usr/local/lib/librcf.so
---Type <return> to continue, or q <return> to quit---
#9  0x282fdf67 in boost::detail::function::function_obj_invoker3<boost::_bi::bind_t<bool, boost::_mfi::mf3<bool, RCF::TcpServerTransport, RCF::RcfServer&, int, bool const volatile&>, boost::_bi::list4<boost::_bi::value<RCF::TcpServerTransport*>, boost::reference_wrapper<RCF::RcfServer>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, bool, int, bool const volatile&, bool>::invoke () from /usr/local/lib/librcf.so
#10 0x282bf412 in boost::function3<bool, int, bool const volatile&, bool, std::allocator<boost::function_base> >::operator() () from /usr/local/lib/librcf.so
#11 0x28272602 in RCF::RcfServer::cycle () from /usr/local/lib/librcf.so
#12 0x2826ae0a in RCF::repeatCycleServer () from /usr/local/lib/librcf.so
#13 0x28272204 in RCF::RcfServer::startInThisThread () from /usr/local/lib/librcf.so
#14 0x28271fad in RCF::RcfServer::startInThisThread () from /usr/local/lib/librcf.so
#15 0x0805ba50 in main () at narc_server.cpp:30
(gdb)


i realize you do things a little differently in your code, with templating, threads, queues and stuff. that is a little advanced for me right now, so i'm trying to build my way up using the examples on the RCF website.


thanks,
max
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Posts in this topic
uplate   Access AMIP socket server from *nix   Oct 10 2007, 02:03 AM
Serge   AMIP uses specific protocol, application which con...   Oct 10 2007, 09:01 AM
uplate   ::phew::..finally got boost/asio/rcf compiled and ...   Oct 15 2007, 12:40 PM
uplate   OK, so I've tried writing a basic program to p...   Oct 15 2007, 11:39 PM
Serge   AMIP on Windows is not using ASIO for RCF, but the...   Oct 15 2007, 11:43 PM
uplate   Thank you for looking into this for me. I could he...   Oct 16 2007, 12:18 AM
Serge   Here is AMIP compiled with RCF 0.9: gen_irc.dll. R...   Oct 16 2007, 10:22 AM
uplate   IT WORKED! [uplate@~/devel/src/amip-clie...   Oct 16 2007, 11:53 PM
uplate   ive been working on an irssi module, and it's ...   Oct 20 2007, 02:20 AM
Serge   Looks nice, thanks for your efforts.   Oct 20 2007, 11:27 AM
uplate   Here's another picture. Looking at the IDL, I...   Oct 21 2007, 02:22 AM
Serge   Using listeners is a bit complicated and requires ...   Oct 21 2007, 11:35 AM
uplate   thanks for the information, and the source has bee...   Oct 24 2007, 01:51 AM
uplate   Hey again, so i'm a little stuck trying to i...   Nov 2 2007, 01:36 AM
uplate   Hey Serge, Ignore the last email, it was a probl...   Nov 3 2007, 02:56 AM
uplate   Was a bug in RCF, author gave me a fix. Now I have...   Nov 3 2007, 05:28 AM
uplate   Implemented ClientService mechanism as an irssi pl...   Nov 4 2007, 05:24 PM
uplate   Now have most of the major functionality of the AM...   Nov 27 2007, 03:06 AM
Serge   I don't mind, please feel free to release it.   Nov 27 2007, 08:12 AM
uplate   Is it OK if I include the gen_irc.dll *compiled wi...   Dec 22 2007, 05:46 PM
Serge   You'd better give a link, since AMIP should be...   Dec 22 2007, 07:34 PM
uplate   Good point, thanks.   Dec 22 2007, 07:49 PM
uplate   OK, first version is released. I won't use thi...   Dec 23 2007, 01:10 AM
uplate   Hey Serge, I noticed the link to the specially com...   Dec 31 2007, 09:42 PM
Serge   2.63 test is available at http://amip.tools-for.ne...   Jan 1 2008, 09:12 PM
uplate   Ah, nice, works great! Thanks, Max   Jan 1 2008, 11:49 PM


Reply to this topicStart new topic
4 User(s) are reading this topic (4 Guests and 0 Anonymous Users)
0 Members: