VC++socket编程问题
调用creat()函数时返回值老是0怎么办?创建成功返回值是多少?刚接触MFC很多东西都不懂,说得越详细越好,谢谢我是继承的CSocket类classCMySocket:...
调用creat()函数时返回值老是0怎么办?创建成功返回值是多少?
刚接触MFC很多东西都不懂,说得越详细越好,谢谢
我是继承的CSocket类
class CMySocket : public CSocket
程序中调用的代码如下:
int b;
class CMySocket m_sListenSock;
b=m_sListenSock.Create(m_iPort);
m_iPort是服务器的端口号,我要创建一个CMySocket的实例监听客户端的连接请求,但是按上面写法b的值是0。
不知道是怎么回事,希望高手解答,先谢谢上面回答的两位了。
我按书上的例子做了好几个了,书上的例子都没问题,但是我用就有问题,很无奈。 展开
刚接触MFC很多东西都不懂,说得越详细越好,谢谢
我是继承的CSocket类
class CMySocket : public CSocket
程序中调用的代码如下:
int b;
class CMySocket m_sListenSock;
b=m_sListenSock.Create(m_iPort);
m_iPort是服务器的端口号,我要创建一个CMySocket的实例监听客户端的连接请求,但是按上面写法b的值是0。
不知道是怎么回事,希望高手解答,先谢谢上面回答的两位了。
我按书上的例子做了好几个了,书上的例子都没问题,但是我用就有问题,很无奈。 展开
3个回答
展开全部
哪里有creat()函数?
在MFC中,使用socket的歼槐雹氏帆顺序应该明带是:
AfxSocketInit();或者WSAStartup
然后使用CSocket socket;socket.Create(...);或者SOCKET sock=socket(...);bind(...);
你是从CSocket派生的呀:
CMySocket socket;
if(socket.Create(m_iPort))socket.Listen();
在这之前要调用一次AfxSocketInit();
在MFC中,使用socket的歼槐雹氏帆顺序应该明带是:
AfxSocketInit();或者WSAStartup
然后使用CSocket socket;socket.Create(...);或者SOCKET sock=socket(...);bind(...);
你是从CSocket派生的呀:
CMySocket socket;
if(socket.Create(m_iPort))socket.Listen();
在这之前要调用一次AfxSocketInit();
展开全部
估计是楼主把CSOCKET和SOCKET搞混了。
如何你是的类是继承CSOCKET,那么调用CRAET()是对的。如果你是肢判搭用SOCKET那么你只能用
Socket(···);
补充:
你可以调用历拿GetLastError()来获取一下错误代码。冲册
如何你是的类是继承CSOCKET,那么调用CRAET()是对的。如果你是肢判搭用SOCKET那么你只能用
Socket(···);
补充:
你可以调用历拿GetLastError()来获取一下错误代码。冲册
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WSAENOBUFS:
由于系统缓冲区空间不足或列队已念尘亮满,不能执行套接字上的仔宽操作。
WSAENOBUFS
10055
(0x2747)
An
operation
on
a
socket
could
not
be
performed
because
the
system
lacked
sufficient
buffer
space
or
because
a
queue
was
full.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681391(v=vs.85).aspx
不太可能是系统缓冲区满导致的问题,而是socket队列已满导致的问题,socket端口是一种有限资源,如果使用不释放,迟早用光兄宽光。
由于系统缓冲区空间不足或列队已念尘亮满,不能执行套接字上的仔宽操作。
WSAENOBUFS
10055
(0x2747)
An
operation
on
a
socket
could
not
be
performed
because
the
system
lacked
sufficient
buffer
space
or
because
a
queue
was
full.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681391(v=vs.85).aspx
不太可能是系统缓冲区满导致的问题,而是socket队列已满导致的问题,socket端口是一种有限资源,如果使用不释放,迟早用光兄宽光。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询