精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>网络与通讯>>about implement asyncsocket in LINUX

主题:about implement asyncsocket in LINUX
发信人: tsingxiao()
整理人: girlrong(1999-11-13 15:08:37), 站内信件
I gotta write a lib for C++ programmer, implement MFC's
CAsyncSocket. And I met a problem now:
 How to detect a async connect() request's status?( failed or
succeed?)
 Some document tell me simply "select" it as read and
write, then test it's return value, but I find it's not
a good idea.
 Can I write a sig_action to test it?(IO_RD or something
else ?)
 Another question is: Many many article tell us: use the
smart "select()", we can throw out the "fock()" but i have
a question on it:
 If we use a "select" in a "while" loops, and use sync operation
server should stop responsing when try sending data, but if
we use async operation, "select" would be _blocked_
 how to ??
 If I can find a lib some where, that's great ……

--

  既不能达而兼善天下
                    只好穷而独善自身
  青山处处  斯民如土矣……

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.252.235]
====================================================================
发信人: wlmqth (TianTian), 信区: C
标  题: Re: about implement asyncsocket in LINUX
发信站: 网易虚拟社区 (Mon Aug 16 23:31:36 1999), 站内信件
when asyn connect connecting it will return
EAGAIN or EWOULDBLOCK error;but TCP three-way
hand to hand will continue;you can use "select" 
to check if the connection is successful!
(perhaps you can use sigaction) the two 
macro have the same value
you can check sys/errno.h to find their value;
Sorry I have no enouth time to tell you the details
I will go on to discuss this article recently!
good luck!
--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.53.233]


===========================================================================
发信人: tsingxiao (脑袋), 信区: C
标  题: Re: about implement asyncsocket in LINUX
发信站: 网易虚拟社区 (Tue Aug 17 08:21:02 1999), 站内信件
:    .......
Yes, I can "select" it to test if the connection is OK or failed
but , the socket this way is async and select would block later
So, can i make the socket back to sync after connect() complete?
fcntl() seemed can do this, but it seemed not working properly.
I wonder I use the wrong parameter. can u give me a sample about
this ?
--

  既不能达而兼善天下
                    只好穷而独善自身
  青山处处  斯民如土矣……
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.3.51]


===========================================================================
发信人: wlmqth (TianTian), 信区: C
标  题: Re: about implement asyncsocket in LINUX
发信站: 网易虚拟社区 (Tue Aug 17 09:13:20 1999), 站内信件
To back to syn stat,
Perhaps you can try to use ioctl
the mark FIOASYNC,it can clear ASYNC mark
or use fcntl set F_SETFL to O_APPEND.
please try.
--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.53.233]



[关闭][返回]