Mam o to taki kod: gdy go uruchomie pokazuje mi sie "blad nasluchu" czyli co s z "listen" jest nie tak:/
#include <winsock.h>
#include <iostream>
#define BACKLOG 10
using namespace std ;
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData); // inicjacja biblioteki ws2_32.dll
int s, error, adrelen, new_connect; // zmiena gniazda, error, accept, nowe polaczenie
const char witaj[]="\n*****-Nasz Wlasny Serwer 1.0-*****\nJak sie nazywasz : ";
sockaddr_in addr; // zmienie do polaczen
addr.sin_family = AF_INET;
addr.sin_port = htons(7171); // port
addr.sin_addr.s_addr=htonl(INADDR_ANY); // kazdy moze sie polaczyc:]
memset(&(addr.sin_zero), '\0', 8); // wyzerowanie reszty struktury
s=socket(AF_INET, SOCK_DGRAM, 0); // gniazdo
if (s<0)
{
cout << "Soccket error";
perror("socket");
return 0;
}
error= bind(s, (struct sockaddr *)&addr, sizeof(sockaddr));
if (error<0)
{
cout << "Bind error";
perror("bind");
closesocket( s );
return 0;
}
// listen(s, BACKLOG);
error= listen(s, BACKLOG);
if (error==-1)
{
cout <<"blad nasluchu\n";
perror("listen");
closesocket( s );
return 0;
}
while (1) {
adrelen= sizeof(struct sockaddr_in);
new_connect = accept(s, (struct sockaddr *)&addr, &adrelen); // nasluchaj dopoki sie ktos nie polczacy
if(new_connect<0); {
perror("send");
return 0;
}
cout << " polaczenie przyjete\n";
send(new_connect,witaj,sizeof(witaj),0); // wysylam powitanie
}
closesocket(new_connect);
closesocket( s );
WSACleanup(); // zamkniecie biblioteki
return 0;
}
Bo jesli zapisze "listen" tak jak na dole, to pojawia mi sie "polaczenie przyjete" i zamyka sie program:/ co mam zrobic aby czekal az ktos sie polaczy??
listen(s, BACKLOG);