No wiec uruchomilem aplikacje serwera, otrzymalem komunikat “Oczekiwanie na polaczenie…” :
#include
#include
#include
#include
#include
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main()
{
int m_port = 8080;
int odp,dl;
int soc1,soc2;
WSAData wsdat;
if (WSAStartup(MAKEWORD(1,1),&wsdat)!= 0)
{
cout<
exit(1);
}
soc1 = socket(PF_INET,SOCK_STREAM,0);
if (soc1 == -1)
{
cout<<"Blad.."<
exit(1);
}
else
cout<<"Utworzono socket na porcie.. "<<"( "<
struct sockaddr_in odb;
odb.sin_family = PF_INET;
odb.sin_port = htonl(m_port);
odb.sin_addr.s_addr = htonl(INADDR_ANY)
memset(odb.sin_zero,0,sizeof(odb.sin_zero));
odp = bind(soc1, (struct sockaddr*)&odb,sizeof (odb));
if (odp == -1)
{
cout<<"Przypisanie adresu nie powiodlo sie.."<
exit(1);
}
else
cout<<"Przypisano adres.. "<
odp = listen(soc1,10);
if (odp == -1)
{
cout<<"Nasluch nie powiodl sie.."<
exit(1);
}
//nawiazywanie polaczenia
cout<<"Oczekiwanie na polaczenie..."<
struct sockaddr_in nad;
dl = sizeof(struct sockaddr_in);
soc2 = accept(soc1,(struct sockaddr *)&nad,&dl);
if (soc2 == INVALID_SOCKET) cout << "Blad polaczenia..";
send (soc2,"Welcome",8,0);
char wiadomosc [512];
for (;;)
{
recv(soc2,wiadomosc,512,0);
send(soc2,wiadomosc,511,0);
}
closesocket(soc2);
closesocket(soc1);
WSACleanup();
getch();
}
nastepnie uruchomilem aplikacje klienta, wpisywalem adres 127.0.0.1, swoj adres i nic, connect zwraca -1 “Blad polaczenia…” i zamyka aplikacje
tutaj kod klienta:
#include
#include
#include
#include
#include
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main()
{
int m_port = 8080;
int soc1,soc2;
int odp;
WSAData wsdat;
if (WSAStartup(MAKEWORD(1,1),&wsdat)!= 0)
{
cout<
exit(1);
}
hostent *host=0;
cout<<"Podaj adres IP serwera: ";
string adresik;
cin>>adresik;
soc1 = socket(PF_INET,SOCK_STREAM,0);
struct sockaddr_in odb;
memset(odb.sin_zero,0,sizeof(odb.sin_zero));
odb.sin_family = PF_INET;
odb.sin_port = htonl(m_port);
odb.sin_addr.s_addr = inet_addr(adresik.c_str());
if (odb.sin_addr.s_addr == INADDR_NONE)
{
host = gethostbyname (adresik.c_str());
if (host == NULL) cout << "Nie moge skonwertowac adresu!\n";
CopyMemory(&odb.sin_addr, host->h_addr_list[0], host->h_length);
}
odp = connect(soc1,(struct sockaddr*)&odb,sizeof (odb));
cout<
if (odp == -1)
{
cout<<"Blad polaczenia.."<
exit(1);
}
else
cout<<"Polaczono.Podaj wiadomosc do wyslania.. "<
char wiadomosc [512];
for (;;)
{
memset(wiadomosc,0,sizeof (wiadomosc));
recv(soc1,wiadomosc,511,NULL);
cout<
}
getch();
}
macie moze jakis pomysl? 