Hej moj problem jest nastepujacy napisalem program UDP. Ze strony http://keeller.kompozytor.net/ . Oto ponizsze kody programu:
#include <conio.h>
#include <winsock2.h>
#pragma hdrstop
//---------------------------------------------------------------------------
// PROGRAM KLIENT UDP
//---------------------------------------------------------------------------
#pragma argsused
int main()
{
WSADATA WSD;
WSAStartup( MAKEWORD( 2 , 0 ) , &WSD);
SOCKET sock;
sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
int opt=4096;
setsockopt( sock, SOL_SOCKET, SO_SNDBUF,
(char*)&opt, sizeof( opt ) );
setsockopt( sock, SOL_SOCKET, SO_RCVBUF,
(char*)&opt, sizeof( opt ) );
bool bopt = true;
setsockopt( sock, SOL_SOCKET, SO_BROADCAST,
(char*)&bopt, sizeof( bopt ) );
setsockopt( sock, SOL_SOCKET, SO_DONTLINGER,
(char*)&bopt, sizeof( bopt ) );
sockaddr_in Addr;
Addr.sin_family = AF_INET;
Addr.sin_port = htons(3000);
Addr.sin_addr.S_un.S_addr = htonl( ADDR_ANY );
memset( Addr.sin_zero , 0, 8 );
bind( sock, (sockaddr*)&Addr, sizeof( sockaddr ) );
Addr.sin_port=htons(3000);
Addr.sin_addr.S_un.S_addr = inet_addr("192.168.233.36");
sendto( sock, dziala??", 6, 0,
(sockaddr*)&Addr, sizeof( sockaddr ) );
WSACleanup();
return 0;
}
#include <iostream.h>
#include <conio.h>
#include <winsock2.h>
//---------------------------------------------------------------------------
// PROGRAM SERWER UDP
//---------------------------------------------------------------------------
int main()
{
WSADATA WSD;
WSAStartup( MAKEWORD( 2 , 0 ) , &WSD);
SOCKET sock;
sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
int opt=4096;
setsockopt( sock, SOL_SOCKET, SO_SNDBUF,
(char*)&opt, sizeof( opt ) );
setsockopt( sock, SOL_SOCKET, SO_RCVBUF,
(char*)&opt, sizeof( opt ) );
bool bopt = true;
setsockopt( sock, SOL_SOCKET, SO_BROADCAST,
(char*)&bopt, sizeof( bopt ) );
setsockopt( sock, SOL_SOCKET, SO_DONTLINGER,
(char*)&bopt, sizeof( bopt ) );
sockaddr_in Addr;
Addr.sin_family = AF_INET; // PF_INET
Addr.sin_port = htons(3000);
Addr.sin_addr.S_un.S_addr = htonl( ADDR_ANY );
// zerujemy resztę struktury
memset( Addr.sin_zero , 0, 8 );
bind( sock, (sockaddr*)&Addr, sizeof( sockaddr ) );
Addr.sin_port=htons(3000);
Addr.sin_addr.S_un.S_addr = inet_addr("172.17.0.213");
char buf[1024];
int s;
fd_set fdsecik;
timeval timevalik;
fdsecik.fd_array[0]=sock;
fdsecik.fd_count=1;
timevalik.tv_sec=1;
select( 0, &fdsecik, NULL, NULL, &timevalik );
recvfrom( sock, buf, 1024, 0, (sockaddr*)&Addr, &s );
cout << buf;
getch();
WSACleanup();
return 0;
}
Wydaje mi sie ze program te sa poprawnie napisane. I gdy odpalam snifera nic mi sie nie pokazuje a zeby klient cos wyslal. W czym moze tkwic problem?? Czy mozecie polecic innym program niz Sniffer??