GreenPiggy
Gebruiker
- Lid geworden
- 3 mrt 2008
- Berichten
- 27
Hallo,
Ik ben net als vele op dit forum aan het "*****" met sockets, maar kom er maar niet uit.
Ik heb tot nu toe deze codes en probeer die met elkaar te laten communiceren op verschillende computers in hetzelfde netwerk. ( het zijn verschillende Tutorials aan elkaar genoopt, ik heb het orginele commentaar er maar bij laten staan ).
Als eerste start ik de server en daarna de client, maar er gebeurt nix...
( het compilen gaat wel goed).
Alle reacties zijn welkom.
Ik ben net als vele op dit forum aan het "*****" met sockets, maar kom er maar niet uit.
Ik heb tot nu toe deze codes en probeer die met elkaar te laten communiceren op verschillende computers in hetzelfde netwerk. ( het zijn verschillende Tutorials aan elkaar genoopt, ik heb het orginele commentaar er maar bij laten staan ).
Code:
// Dit is de client
#include <winsock.h>
#include <iostream>
using namespace std;
#define MAXDATASIZE 1000
#define HUN_IP "192.168.1.72"
void Startup()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
/* Use the MAKEWORD(lowbyte, highbyte) macro declared in Windef.h */
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
/* Tell the user that we could not find a usable */
/* Winsock DLL. */
printf("WSAStartup failed with error: %d\n", err);
exit(1);
}
}
void Cleanup()
{
WSACleanup();
}
int main(int argc, char *argv[])
{
Startup();
int sockfd, aant_bytes;
char buf[MAXDATASIZE];
struct sockaddr_in hun_adres; /* connector's adresinformatie */
cin.get();
hun_adres.sin_family = AF_INET; /* host byte volgorde */
hun_adres.sin_port = htons(4343); /* short (16 bit), netwerk byte volgorde */
hun_adres.sin_addr.s_addr = inet_addr(HUN_IP);
memset(&(hun_adres.sin_zero), '\0', 8); /* rest van de struct op nul */
buf[aant_bytes] = '\0';
cin.get();
printf("Ontvangen: %s",buf);
cin.get();
closesocket(sockfd);
Cleanup();
return 0;
}
Code:
// en dit moet de server voorstellen.
#include <winsock.h>
#include <iostream>
using namespace std;
void Startup()
{
WSADATA wsaData; // als dit niet werkt,
//WSAData wsaData; // probeer dan dit.
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
fprintf(stderr, "WSAStartup is mislukt.\n");
exit(1);
}
}
void Cleanup()
{
WSACleanup();
}
main()
{
Startup();
int sockfd;
int backlog = 10;
int sin_size;
int new_fd;
int stop = 1;
int len, bytes_verzonden;
struct sockaddr_in mijn_addr;
struct sockaddr_in hun_addr; // adresinformatie van de 'beller'
sockfd = socket(AF_INET, SOCK_STREAM, 0);
mijn_addr.sin_family = AF_INET; // host byte volgorde
mijn_addr.sin_port = 4343; // kies willekeurig een ongebruikte poort
mijn_addr.sin_addr.s_addr = INADDR_ANY; // gebruik mijn IP adres
memset(&(mijn_addr.sin_zero), '\0', 8); // de rest van de struct op nul
if (bind(sockfd, (struct sockaddr *)&mijn_addr, sizeof(struct sockaddr)) == -1)
{
return 1;
}
while (stop > 0)
{
if (bytes_verzonden =! 1)
{
cout << bytes_verzonden;
}
int listen(int sockfd, int backlog);
sin_size = sizeof(struct sockaddr_in);
new_fd = accept(sockfd, (struct sockaddr *)&hun_addr, &sin_size);
char *msg = "Bericht overgekomen!!!";
len = strlen(msg);
bytes_verzonden = send(sockfd, msg, len, 0);
}
cin.get();
cout << sockfd;
Cleanup();
cout << "gelukt";
cin.get();
}
Als eerste start ik de server en daarna de client, maar er gebeurt nix...
( het compilen gaat wel goed).
Alle reacties zijn welkom.