Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dva prijemna porta?

[es] :: C/C++ programiranje :: Dva prijemna porta?

[ Pregleda: 895 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bojannrt2104

Član broj: 190234
Poruke: 4
*.rcub.bg.ac.yu.



Profil

icon Dva prijemna porta?20.03.2009. u 09:36 - pre 184 meseci
Da li je moguće definisati dva prijemna porta u c++ u console aplication.Ja sa funkcijom recivefrom mogu da čitam samo as jednog porta,pa me zanima da li je moguće nekako definisati dva prijemna porta,koja bi mogao da očitavam istovremeno.

Evo kako mi sada glasi kod za vezivanje UDP servera na jedan PORT i očitanu IP adresu računara.Da li neko zna kako napraviti dva prijemna porta(niti)?


// Odredjivanje IP adrese maticnog racunara koja je potrebna za bindovanje soketa

if (gethostname(hostName,30)) cout<< WSAGetLastError();
cout<<endl;
cout<<"Moj hostname:"<<hostName<<endl;
if ((hp=gethostbyname(hostName))==NULL)
{
return;
}
memcpy((char*)&ia,(char*)hp->h_addr,hp->h_length);
ip=inet_ntoa(ia);
cout<<"Ocitana IP adresa:"<<ip<<endl;

// Kreiranje soketa za UDP protokol.

sock = socket ( AF_INET, SOCK_DGRAM, 0 );
if ( sock == INVALID_SOCKET ) cout<<"greska Kreiranje soketa";
else cout<< "Kreiran je soket!"<<endl;

// Vezivanje soketa za naznacenu IP adresu i broj porta (bindovanje).

UdpServ.sin_family = AF_INET;
UdpServ.sin_addr.s_addr = htonl (INADDR_ANY);
UdpServ.sin_port = htons (PORT);

err = bind ( sock, (SOCKADDR *) &UdpServ, sizeof (SOCKADDR_IN) );
if ( SOCKET_ERROR == err ) cout<<"greska kod bindovanja"<<endl;
else cout<<"Bindovan."<<endl<<endl;

// Adresa i broj porta na kom primamo datagram

UdpServ.sin_addr.S_un.S_addr=inet_addr(ip); // za ocitanu IP adr
printf("Moja ocitana IP adrsa: %s \n",ip);
// UdpServ.sin_addr.S_un.S_addr=inet_addr(Moja_IPadresa); // za moju IP adr
// printf("Moja IP adrsa: %s \n",Moja_IPadresa);
UdpServ.sin_port = htons (PORT);
printf("Moj ocitan Port: %d \n",PORT);
// Primanje datagrama

nSize = sizeof ( SOCKADDR_IN );
int first=1;

received= recvfrom ( sock,(char*)achBuffer1,MAX_LEN, 0,(SOCKADDR FAR *) &UdpServ,&nSize);
achBuffer1[received]='\0';

[Ovu poruku je menjao bojannrt2104 dana 20.03.2009. u 12:00 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: Dva prijemna porta?

[ Pregleda: 895 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.