Witam, mam problem z odczytaniem danych z pakietu tcp:
typedef struct tcp_hdr
{
unsigned short int sport;
unsigned short int dport;
unsigned int seqnum;
unsigned int acknum;
unsigned short int DataOffset;
unsigned char Flags;
unsigned short int Reserved;
unsigned short int Urg;
unsigned short int Ack;
}TCP_HDR ;
if(WSAStartup(MAKEWORD(2,1),&wsd) != 0) return;
sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
char FAR name[MAX_HOSTNAME_LAN];
gethostname(name, MAX_HOSTNAME_LAN);
struct hostent FAR * pHostent;
pHostent = (struct hostent * )new char[(sizeof(struct hostent))];
pHostent = gethostbyname(name);
SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);
bind(sock, (SOCKADDR *)&sa, sizeof(sa));
WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
while( true )
{
//memset(RecvBuf, 0, BufferLen) ;
recv(sock, RecvBuf, BufferLen, 0) ;
ip_hdr *pIpheader = (ip_hdr *)RecvBuf;
tcp_hdr *pTcpheader = (tcp_hdr *)(RecvBuf + sizeof(ip_hdr));
udp_hdr *pUdpheader = (udp_hdr *)(RecvBuf + sizeof(ip_hdr))
}
I teraz jak z tej struktury odczytac dane pakietu, umiem odczytac ip i porty ale nie umiem odczytac danych.