注册 登录
编程论坛 VC++/MFC

请教一个关于CSocket的问题

孤月飞星 发布于 2013-06-23 16:55, 673 次点击
我用CSocket类编写了一个客户端和服务端,当我服务端没有打开的时候,客户端的开始链接,connect函数返回的是1。正常情况不是应该服务端开始监听了,客户端才能链接吗?
1 回复
#2
yuccn2013-06-24 12:09
connect返回1不就是说明已经连接上了,你查看CSocket的用法才行的,它返回的不是连接成功or 失败


下面from msdn

Return Value

--------------------------------------------------------------------------------


 
Nonzero if the function is successful; otherwise 0, and a specific error code can be retrieved by calling GetLastError. If this indicates an error code of WSAEWOULDBLOCK, and your application is using the overridable callbacks, your application will receive an OnConnect message when the connect operation is complete. The following errors apply to this member function:

 WSANOTINITIALISED   A successful AfxSocketInit must occur before using this API.
 

 WSAENETDOWN   The Windows Sockets implementation detected that the network subsystem failed.
 

 WSAEADDRINUSE   The specified address is already in use.
 

 WSAEINPROGRESS   A blocking Windows Sockets call is in progress.
 

 WSAEADDRNOTAVAIL   The specified address is not available from the local machine.
 

 WSAEAFNOSUPPORT   Addresses in the specified family cannot be used with this socket.
 

 WSAECONNREFUSED   The attempt to connect was rejected.
 

 WSAEDESTADDRREQ   A destination address is required.
 

 WSAEFAULT   The nSockAddrLen argument is incorrect.
 

 WSAEINVAL   Invalid host address.
 

 WSAEISCONN   The socket is already connected.
 

 WSAEMFILE   No more file descriptors are available.
 

 WSAENETUNREACH   The network cannot be reached from this host at this time.
 

 WSAENOBUFS   No buffer space is available. The socket cannot be connected.
 

 WSAENOTSOCK   The descriptor is not a socket.
 

 WSAETIMEDOUT   Attempt to connect timed out without establishing a connection.
 

 WSAEWOULDBLOCK   The socket is marked as nonblocking and the connection cannot be completed immediately.
 



Remarks

--------------------------------------------------------------------------------


 
If the socket is unbound, unique values are assigned to the local association by the system, and the socket is marked as bound. Note that if the address field of the name structure is all zeroes, Connect will return zero. To get extended error information, call the GetLastError member function.
 
For stream sockets (type SOCK_STREAM), an active connection is initiated to the foreign host. When the socket call completes successfully, the socket is ready to send/receive data.

For a datagram socket (type SOCK_DGRAM), a default destination is set, which will be used on subsequent Send and Receive calls.
1