um, первое сообщение здесь, это место, кажется, повсюду в google, и я могу обычным образом найти свое решение с необходимостью задать себе вопрос самостоятельно на любом сайте/форумах; но если я потею больше пуль над этим ima охотятся на тех, кто развил winsock и стреляет в них (извините за гнев Я думаю, что явер перевернул каждый камень в каждом корнере сети, не повезло .... breeaatheee .... wheew)C++ winsock дает ошибку 10038 на bind()
Я новый для сетевого программирования, но работал с C++ в течение последних трех лет на уровне хобби, а также недавно играл с AS3.
Im пытается написать сервер (для клиента с проектом AS3 im, также работающим), и насколько я могу сказать, что SOCKET это прекрасно. им не воссоздавать его, многопоточность с ним, пересоздание или что-то еще. нет смешной небрежности. просто пытаясь установить все и привязать(), выплескивает этот скверный 10038 прямо на моем лице.
Ive посмотрел на MSDN, и я очень хорошо знаю, что 10038 означает «попытка операции с недопустимым сокетом»; для жизни меня я не вижу, где ее инвалид.
но достаточно моего бессвязных, Heres код: (functions.h пуст, havnt получил, что далеко вперед пока)
//Server for Project7 - Client written in AS3 under FlashDevelop. Developed under and for the Windows Operating System Enviroment
//All connections handled under TCP/IP on port 3011
//Client is URL locked to www.cutdev.com
//Copyright Tyler Buchinski 2012 All Rights Reserved
#include <iostream>
#include "functions.h"
#define WIN32_MEAN_AND_LEAN
#include <winsock2.h>
#include <windows.h>
using namespace std;
int main()
{
const int iReqWinsockVer = 2; // Minimum winsock version required
WSADATA wsaData;
if (WSAStartup(MAKEWORD(iReqWinsockVer,0), &wsaData)==0)
{
// Check if major version is at least iReqWinsockVer
if (LOBYTE(wsaData.wVersion) >= iReqWinsockVer)
{
SOCKET SocketListen;
SocketListen = (AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(SocketListen == INVALID_SOCKET)
{
cout << "ERROR - could not creaate listening socket." << endl;
system("pause");
return 4;
}
sockaddr_in Listener, Channel1;
Listener.sin_family = AF_INET;
Listener.sin_port = htons(3011);
Listener.sin_addr.S_un.S_addr = INADDR_ANY;
int err = bind(SocketListen,(sockaddr*)(&Listener),sizeof(Listener));
if (!err == 0)
{
cout << "Listener binding failed!" << endl;
cout << err << endl;
cout << WSAGetLastError();
return 3;
}
}
else
{
// Required version not available
cout <<"Required version of Winsock not installed." << endl;
}
// Cleanup winsock
if (!WSACleanup() == 0)
{
// cleanup failed
cout << "WSACleanup Failed!!" << endl;
system("pause");
}
}
else
{
cout << "WSA Startup failed!" << endl;
}
return 0;
}
Заранее спасибо за любую помощь! Тайлер
Я не вижу звонок, который в гнезде .... –