void procPerMessage::udpSend(int protocol_id, Message* msg) { //Add header udpHeader *header = new udpHeader; header->hlp = protocol_id; //Send to IP header->m_size = msg->msgLen(); msg->msgAddHdr((char *)header, sizeof(udpHeader)); ipSend(UDP_ID, msg); delete header; }
void procPerMessage::tcpSend(int protocol_id, Message* msg) { //Add header tcpHeader *header = new tcpHeader; header->hlp = protocol_id; //Send to ip header->m_size = msg->msgLen(); msg->msgAddHdr((char *)header, sizeof(tcpHeader)); ipSend(TCP_ID, msg); delete header; }
void udpSend(uint32_t dstIp, uint16_t dstPort, uint16_t len, uint8_t* data) { // make pointer to UDP header struct netUdpHeader* udpHeader; // move data pointer to make room for UDP header data -= UDP_HEADER_LEN; udpHeader = (struct netUdpHeader*)data; // adjust length to add UDP header len += UDP_HEADER_LEN; // fill UDP header udpHeader->destport = HTONS(dstPort); udpHeader->srcport = HTONS(dstPort); udpHeader->udplen = htons(len); udpHeader->udpchksum = 0; // debugPrintHexTable(UDP_HEADER_LEN, (uint8_t*)udpPacket); ipSend(dstIp, IP_PROTO_UDP, len, (uint8_t*)udpHeader); }