Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Nov 2006 08:41:30 +0300
From:      Yar Tikhiy <yar@comp.chem.msu.su>
To:        "Devon H. O'Dell" <devon.odell@gmail.com>
Cc:        freebsd-hackers@freebsd.org, Garrett Cooper <youshi10@u.washington.edu>
Subject:   Re: Single UDP sockets : duplex capable?
Message-ID:  <20061129054130.GH96853@comp.chem.msu.su>
In-Reply-To: <9ab217670611281324y7e6b9d69g7f8843504b2fbd8d@mail.gmail.com>
References:  <456CA68E.7090207@u.washington.edu> <9ab217670611281324y7e6b9d69g7f8843504b2fbd8d@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 28, 2006 at 04:24:08PM -0500, Devon H. O'Dell wrote:
> 2006/11/28, Garrett Cooper <youshi10@u.washington.edu>:
> >Hello,
> >
> >    Just wondering, abstractly..
> 
> Both sides can read from and write to the socket file descriptor.
> You'll need to develop a protocol to determine when either given side
> is expecting to receive or to send data (if both sides sit around in
> read(2), you're not going to get much done) :)

... and if you want asynchronous conversation, i.e., data coming
anytime, consider using non-blocking sockets with select(2), poll(2),
or kqueue(2).  The particular choice depends upon the requirements
on the portability and performance of the application.  If you
target at as much systems as possible, using a ready-made wrapper
library such as libevent can be an option.

> > -------------------------
> >| A -[socket (UDP)]-> B |
> > -------------------------
> >
> >    A creates a UDP socket (call it 's1') to talk to B.
> >
> >    Can B use the same socket ('s2') to talk to A using read(2) or
> >recv(2), or does A have to accept(2) traffic from B using a different
> >socket?
> >
> >    The programming language I'm using is C (not C++).

-- 
Yar



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061129054130.GH96853>