socket()总返回-1

bluecode 2002-01-14 06:50:06
调用 socket(AF_INET, sock_DGRAM, 0);
总返回-1, 怎么回事?
...全文
2380 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnyWind 2002-01-18
  • 打赏
  • 举报
回复
返回-1的原因是指定了求知的协议或者要求了一种没有支持协议的套接字类型,一般地:
在UNIX域中:s = socket(AF_UNIX,SOCK_DGRAM,UDP)创建数据报套接字的支持协议为UDP,
在INTERNET域中:s = socket(AF_INET,SOCK_STREAM,TCP)创建流套接字的支持协议为TCP,不能混淆。
bluecode 2002-01-18
  • 打赏
  • 举报
回复
回去试试就给分
firevc 2002-01-15
  • 打赏
  • 举报
回复
AfxSocketInit();

good luck!
angular_lucy 2002-01-15
  • 打赏
  • 举报
回复
this:;;;;;;;;;
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
AfxMessageBox("WSAStartup failed with error %d\n",WSAGetLastError());
WSACleanup();
return -1;
}

口sockfd
// Copy the resolved information into the sockaddr_in structure
memset(&addr,0,sizeof(addr));
memcpy(&(addr.sin_addr),hp->h_addr,hp->h_length);
addr.sin_family = hp->h_addrtype;
addr.sin_port = htons(PORT);

sockfd = socket(AF_INET,SOCK_DGRAM,0); /* Open a socket */

if (sockfd < 0 ) {
AfxMessageBox("Client: Error Opening socket: Error %d\n",
WSAGetLastError());
WSACleanup();
return -1;
}
ky640 2002-01-15
  • 打赏
  • 举报
回复
不是给你说了嘛,在调用socket函数之前,必须首先调用WSAStartup函数嘛,具体说明,去看MSDN。
TangDL 2002-01-15
  • 打赏
  • 举报
回复
有没有调用WSAStartup?
angular_lucy 2002-01-15
  • 打赏
  • 举报
回复
devouer(玩笑一生):谁说的?我用的就是winsock2
devouer 2002-01-15
  • 打赏
  • 举报
回复
上述语句在SOCKET 1应该没有问题 ,不过在SOCKET 2 中就有问题,因为AF_inet协议族需要指明参数3,试试吧!
bluecode 2002-01-14
  • 打赏
  • 举报
回复
我倒,现在不准UP了啊。呵呵
bluecode 2002-01-14
  • 打赏
  • 举报
回复
……
各位, 能不能一次说清楚?
谢谢了!
zhaoweidf 2002-01-14
  • 打赏
  • 举报
回复
没有做sock处实化吧
bluecode 2002-01-14
  • 打赏
  • 举报
回复
TCP/IP 协议?
肯定装了, 我都连网了。
bskay 2002-01-14
  • 打赏
  • 举报
回复
你的机器没有装该协议
bluecode 2002-01-14
  • 打赏
  • 举报
回复
没人帮助我吗?
bluecode 2002-01-14
  • 打赏
  • 举报
回复
既然
IPPROTO_IP==0
那调用结果不就仍然返回-1?
ydogg 2002-01-14
  • 打赏
  • 举报
回复
协议字段
ky640 2002-01-14
  • 打赏
  • 举报
回复
不好意思,上面说错了,应该是IPPROTO_IP==0.
byebye,明天见.
ky640 2002-01-14
  • 打赏
  • 举报
回复
你没有调用wsastartup初始化socket库,所以不行。IPPROTO_IP=0。
ydogg 2002-01-14
  • 打赏
  • 举报
回复
SORRY, 一点错误
socket(AF_INET,SOCK_STREAM,IPPROTO_IP);//TCP
socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
bluecode 2002-01-14
  • 打赏
  • 举报
回复
IPPROTO_IP
请问做什么用?
加载更多回复(1)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧