Je travaille avec WinSock
et j'ai un problème: si je définis MY_IP
comme étant "127.0.0.1" cela fonctionne mais je ne veux pas ça je veux pour définir MY_IP
comme étant "109.95.202.122" mais cela ne fonctionne pas.Erreur avec les fonctions bind() et listen() (WinSock)
Je ne parviennent: Fail bind()
et Listen Error
#pragma comment(lib, "Ws2_32.lib")
#include <sdkddkver.h>
#include <conio.h>
#include <stdio.h>
#include <WinSock2.h>
#include <Windows.h>
#include <iostream>
#include <string>
#include <process.h>
#define MY_IP "109.95.202.122"
using namespace std;
int main()
{
WSADATA wsaData;
int result = WSAStartup(MAKEWORD(2, 2), & wsaData);
if(result != NO_ERROR)
cout << "Initialization error." << endl;
SOCKET mainSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(mainSocket == INVALID_SOCKET)
{
printf("Error creating socket: %ld\n", WSAGetLastError());
WSACleanup();
return 1;
}
sockaddr_in service;
memset(& service, 0, sizeof(service));
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr(MY_IP);
service.sin_port = htons(27015);
if(bind(mainSocket, (SOCKADDR*)&service, sizeof(service))== SOCKET_ERROR)
{
cout << "Fail bind()" << endl;
closesocket(mainSocket);
}
if(listen(mainSocket, 1) == SOCKET_ERROR)
{
cout << "Listen Error";
}
cout << "Oczekiwanie na polaczenie" << endl;
SOCKET acceptSocket = SOCKET_ERROR;
while(acceptSocket == SOCKET_ERROR)
{
acceptSocket = accept(mainSocket, NULL, NULL);
}
if(acceptSocket != SOCKET_ERROR)
{
cout << "Connected ! :D" << endl;
for(;;)
{
char chWiadomosc[1000];
recv(mainSocket, chWiadomosc, sizeof(chWiadomosc), NULL);
}
}
}