首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

socket小疑点求解

2012-04-26 
socket小问题求解检查一下居然返回了-1...好奇怪...怎么解决?????C/C++ code#include iostream#include

socket小问题求解
检查一下居然返回了-1...好奇怪...怎么解决?????

C/C++ code
#include <iostream>#include <winsock2.h>#pragma comment(lib, "WSOCK32.lib")using namespace std;#define Post 5266int main(){    int ID_1, ID_2;    ID_1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);    cout << "Socket ID: " << ID_1 << endl;         //为什么这里返回了-1????         return 0;}

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

C/C++ code
#include <iostream>#include <winsock2.h>#pragma comment(lib, "WSOCK32.lib")using namespace std;#define Post 5266int 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;}


[解决办法]
探讨

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

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

[解决办法]
没初始化是说没WSAStartup吧

热点排行