Problem getting non-blocking sockets going on BSD 2.11
Tobias Russell
toby at coreware.co.uk
Sun Feb 28 11:48:37 CST 2010
Thanks Dave, the fixed it.
All the best,
Toby
On 28 February 2010 15:32, Dave McGuire <mcguire at neurotica.com> wrote:
> On Feb 28, 2010, at 5:52 AM, Tobias Russell wrote:
>>
>> I'm in the midst of writing a MUD for PDP-11s running under BSD 2.11
>> and have run into a problem getting non-blocking I/O working.
>>
>> I initially wrote a simple test program to setup a non-blocking socket
>> and accept connections then echo back anything typed to all connected
>> sessions. This worked fine. However now I've placed the exact same
>> code into my MUD development, the sockets are blocking.
>>
>> I've got the following in my setup of the socket:
>>
>> /* Set socket to non-blocking */
>> if( ioctl(s,FIONBIO) == -1 ) {
>> printf("Error ocurred");
>> }
>>
>> which I believe should make the socket non-block and when I run up the
>> code it doesn't throw a failure on the ioctl, however the socket
>> definitely remains in blocking mode.
>>
>> Anyone have any ideas? I've been scratching my head on this one for days
>> now
>
> FIONBIO takes an argument, which is a pointer to an integer. Here's how
> you want to do this under 2.11BSD:
>
> -------------------------
> int on = 1;
> ...
> ...
> ...
> if (ioctl(s, FIONBIO, &on) == -1) {
> printf("ioctl() failed\n");
> }
> -------------------------
>
> -Dave
>>
>
>
> --
> Dave McGuire
> Port Charlotte, FL
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
--
Tobias Russell
Managing Director
Coreware Ltd
The Tannery, Tannery Lane, Bramley, Surrey, GU5 0AB, England
Email - toby at coreware.co.uk
Telephone - +44(0)1483 890910
AOL Messenger - tobystatz
MSN Messenger - tobiasrussell123 at hotmail.com
Skype - tobiasrussell
For emergency support, telephone +44(0)871 288 0335, email
ops at coreware.co.uk, or visit http://support.coreware.co.uk/
More information about the cctech
mailing list