VMD-L Mailing List
From: John Stone (johns_at_ks.uiuc.edu)
Date: Wed May 28 2003 - 14:36:42 CDT
- Next message: John Stone: "Re: advice for a PCI video card on redhat"
 - Previous message: Marc Baaden: "Re: IMD interface code and endianness"
 - In reply to: Marc Baaden: "Re: IMD interface code and endianness"
 - Next in thread: Marc Baaden: "Re: IMD interface code and endianness"
 - Reply: Marc Baaden: "Re: IMD interface code and endianness"
 - Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
 
Marc,
  All the vmdsock_selread() function does is wait until there's 
something available for reading on the socket.  Note that the NAMD
code has two modes of operation: a blocking mode where it loops
waiting for an IMD connection, and a polling mode where it just
does a quick test to see if an IMD connection came in since the 
last check, see GlobalMasterIMD::calculate() in the NAMD source.
>From there, if there was an incoming socket, it does a call to 
vmdsock_accept(), then my_imd_connect() which does the necessary
handshaking process by calling imd_handshake().
Does that make sense?
What error are you getting during vmdsock_selread()???
What's the return code and/or errno set to in your program?  
What system are you running this code on?
Thanks,
  John Stone
  vmd_at_ks.uiuc.edu
On Wed, May 28, 2003 at 09:21:19PM +0200, Marc Baaden wrote:
> 
> >>> John Stone said:
>  >>   When the connection first occurs, endianness is determined by
>  >> the byte order of integers that come early in 'handshake' process.  
>  >> Check out the IMDSim::handshake() code in VMD.  The server (NAMD, Protomol,
>  >> or your program) should be sending an integer '1', VMD listens for this
>  >> and from this message determines the endianism of the remote host.
> 
> Yes, I found this routine and its definition. But what I don't understand is
> where the integer '1' is sent (which routine).
> 
> Because from my understanding of the NAMD code it schematically does
> things in the following order
> 
> vmdsock_create();
> vmdsock_bind(sock, port);
> vmdsock_listen(sock);
> vmdsock_selread(sock, 3600);    <== here my error occurs
> vmdsock_accept(sock);
> imd_handshake(sock);      <== '1' is exchanged here, no ?
> [..]
> 
> The selread subroutine however does not seem to send the 1 signal for
> determining endianness, but debugging shows me that it is exactly at
> this point (at rc = select(s->sd+1, &rfd, NULL, NULL, &tv); to be exact)
> that VMD produces the endianness error.
> 
> I'll keep on searching ..
> 
> 
>  >> Regarding licensing: the standard VMD/NAMD licenses allow up to 10% of the
>  >> non-comment source code lines to be re-used, so that should easily cover
>  >> all of the IMD files you're interested in.
> 
> Yes indeed. That is great news.
> 
> Thanks,
> Marc
> -- 
>  Dr. Marc Baaden  - Institut de Biologie Physico-Chimique, Paris
>  mailto:baaden_at_smplinux.de      -      http://www.marc-baaden.de
>  FAX: +49 697912 39550  -  Tel: +33 15841 5176 ou +33 609 843217
> 
-- NIH Resource for Macromolecular Modeling and Bioinformatics Beckman Institute for Advanced Science and Technology University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801 Email: johns_at_ks.uiuc.edu Phone: 217-244-3349 WWW: http://www.ks.uiuc.edu/~johns/ Fax: 217-244-6078
- Next message: John Stone: "Re: advice for a PCI video card on redhat"
 - Previous message: Marc Baaden: "Re: IMD interface code and endianness"
 - In reply to: Marc Baaden: "Re: IMD interface code and endianness"
 - Next in thread: Marc Baaden: "Re: IMD interface code and endianness"
 - Reply: Marc Baaden: "Re: IMD interface code and endianness"
 - Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
 



