0
你好,我是一个初学socket/c程序员,从这个教程我有连接函数返回10038错误。请帮忙。我究竟做错了什么?
还有什么区别winsock和winsock2? 也在connect()函数中定义了int PASCAL pascal是什么?连接()函数失败wsagetlasterror()10038
#include <iostream>
#include <winsock.h>
using namespace std;
int main(){
WSADATA wsa;
cout<< "Iinitializing winsock....";
SOCKET sa;
struct sockaddr_in server;
if (WSAStartup(MAKEWORD(2,2), &wsa)!=0)
cout << "Failed";
cout << "initialized";
if ((sa = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) == INVALID_SOCKET))
cout << "Could not create socket " << WSAGetLastError();
cout << "Socket created";
server.sin_addr.s_addr = inet_addr ("213.165.64.44");
server.sin_family = AF_INET;
server.sin_port = htons(7);
//connect
if (connect(sa, (struct sockaddr *)&server, sizeof(server)) < 0){
cerr << "connect error" << WSAGetLastError();
return 1;
}
cout << "connected";
return 0;
}
+1为您的答案 - 我永远不会看到如此密切的困扰。 -1为OP问题的废话调试技能 - 没有读取到本地的第一个套接字,以便它的返回值可以被检查。对不起,OP,但本网站上显示的调试技巧的水平是非常糟糕的,而且越来越差...... –
所以你告诉我,当你自己没有发现它时,我的调试技巧不好。顺便说一句,我没有用wsagetlasterror查找错误代码。我只是不知道是什么造成了它。 –
你还会推荐什么IDE?我目前正在使用code :: blocks,我应该改变IDE吗? –