Ik heb een programma gemaakt dat moet luisteren naar inkomende verbindingen over internet/netwerk, als ik via m'n netwerk verbinding maak met de 'server' werkt alles naar behoren van zodra ik echter vanop een andere computer met m'n 'server' wil connecten over internet loopt het fout. Er gebeurt dan helemaal niets er wordt geen verbinding gemaakt met het programma, het lijkt dus alsof het helemaal niet 'luistert' naar verbindingen inkomende via het internet.
Ik dacht eerst aan m'n firewall ofzo maar daar blijkt het niet aan te liggen, iemand een idee ?
bvd,
Ik dacht eerst aan m'n firewall ofzo maar daar blijkt het niet aan te liggen, iemand een idee ?
bvd,
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| int main(void) { //Initialiseer winsock WSADATA wsaData; if(WSAStartup(MAKEWORD(1,1), &wsaData)) { cout << "\nWSAStartup faalde."; exit(1); } //Nodig voor CreateThread DWORD dwThreadId; HANDLE hThread; struct sockaddr_in my_addr, their_addr; char yes = '1'; int sin_size, socketfd, newsocketfd; struct hostent *client_info; if( (socketfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ) { cout << "\nsocket() faalde."; exit(1); } if( setsockopt(socketfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(char)) == -1 ) { cout << "\nsetsockopt() faalde."; exit(1); } my_addr.sin_family = AF_INET; my_addr.sin_port = htons(MYPORT); my_addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); memset(&(my_addr.sin_zero), '', 8); if( bind(socketfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1 ) { cout << "\nbind() faalde."; exit(1); } if( listen(socketfd, BACKLOG) == -1 ) { t>cout << "\nlisten() faalde."; exit(1); } while(TRUE) { //accept loop sin_size = sizeof(struct sockaddr_in); if( (newsocketfd = accept(socketfd, (struct sockaddr *)&their_addr, &sin_size)) == -1 ) { cout << "\naccept() faalde."; continue; //server mag niet down gaan door een foute accept() } client_info = gethostbyaddr((const char *)&their_addr.sin_addr, sizeof(struct in_addr), AF_INET); cout << "\nConnected with " << client_info->h_name <<" (" << inet_ntoa(their_addr.sin_addr) << ")"; if( !(hThread = CreateThread(NULL, 0, handleRequest, &newsocketfd, 0, &dwThreadId)) ) { cout << "CreateThread() faalde."; exit(1); } else { CloseHandle(hThread); } } closesocket(socketfd); WSACleanup(); return 0; } |