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。
不知道是怎么回事,希望高手解答,先谢谢上面回答的两位了。
我按书上的例子做了好几个了,书上的例子都没问题,但是我用就有问题,很无奈。
展开
 我来答
intehel
推荐于2016-09-04 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1765万
展开全部
哪里有creat()函数?
在MFC中,使用socket的歼槐雹氏帆顺序应该明带是:
AfxSocketInit();或者WSAStartup
然后使用CSocket socket;socket.Create(...);或者SOCKET sock=socket(...);bind(...);

你是从CSocket派生的呀:
CMySocket socket;
if(socket.Create(m_iPort))socket.Listen();

在这之前要调用一次AfxSocketInit();
百度网友827e49f
2010-05-27 · TA获得超过233个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:152万
展开全部
估计是楼主把CSOCKET和SOCKET搞混了。
如何你是的类是继承CSOCKET,那么调用CRAET()是对的。如果你是肢判搭用SOCKET那么你只能用
Socket(···);
补充:
你可以调用历拿GetLastError()来获取一下错误代码。冲册
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
僧丁仵乐双
2019-10-23 · TA获得超过3739个赞
知道大有可为答主
回答量:3102
采纳率:25%
帮助的人:411万
展开全部
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端口是一种有限资源,如果使用不释放,迟早用光兄宽光。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式