socket小问题求解

矫情狗_____ 2012-04-14 02:54:38
检查一下居然返回了-1...好奇怪...怎么解决?????
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "WSOCK32.lib")
using namespace std;
#define Post 5266

int main()
{
int ID_1, ID_2;
ID_1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
cout << "Socket ID: " << ID_1 << endl; //为什么这里返回了-1????
return 0;
}

原本代码如下,执行到这就执行不下去了...

#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "WSOCK32.lib")
using namespace std;
#define Post 5266

int main()
{
int ID_1, ID_2;
if((ID_1 = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
cout << "Socket error!" << endl;
exit(1);
}
else
{
cout << "Socket ID: " << ID_1;
}
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = Post;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if((bind(ID_1, (struct sockaddr *)&addr, sizeof(struct sockaddr))) < 0)
{
cout << "Socket bind error" << endl;
exit(1);
}
else
{
cout << "PORT: " << Post << endl;
}
if((listen(ID_1, 5)) < 0)
{
cout << "listen error" << endl;
exit(1);
}
else
{
cout << "Listenning..." << endl;
}
int temp = sizeof(struct sockaddr_in);
if((ID_2 = accept(ID_1, (struct sockaddr *)&addr, &temp)) < 0)
{
cout << "Link error" << endl;
}
else
{
cout << "New socket id: " << ID_2 << endl;
}
return 0;
}
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kgzhw 2012-04-14
  • 打赏
  • 举报
回复
没初始化是说没WSAStartup吧
super_admi 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

ID_1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
返回小于0的值表示建立套接字失败。。

.socket之前没初始化?不知道你进行怎么样的初始化?linux下貌似没什么初始化的呀?
[/Quote]

“WSOCK32.lib”,明显是Win32下的。
super_admi 2012-04-14
  • 打赏
  • 举报
回复
-1 == SOCKET_ERROR
pengfoo 2012-04-14
  • 打赏
  • 举报
回复
ID_1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
返回小于0的值表示建立套接字失败。。

.socket之前没初始化?不知道你进行怎么样的初始化?linux下貌似没什么初始化的呀?
矫情狗_____ 2012-04-14
  • 打赏
  • 举报
回复
已经解决了...socket之前没初始化...

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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