Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // UDP_Communication_Framework.cpp : Defines the entry point for the console application.
- //
- #pragma comment(lib, "ws2_32.lib")
- #include "stdafx.h"
- #include <winsock2.h>
- #include <iostream>
- #include <fstream>
- #include <string>
- #include "ws2tcpip.h"
- using namespace std;
- #define TARGET_IP "147.32.221.22"
- #define BUFFERS_LEN 1024
- //#define PACKET_SIZE 1016
- #define SENDER
- #define RECEIVER
- #ifdef SENDER
- #define TARGET_PORT 5555
- #define LOCAL_PORT 8888
- #endif // SENDER
- #ifdef RECEIVER
- #define TARGET_PORT 8888
- #define LOCAL_PORT 5555
- #endif RECEIVER
- void InitWinsock()
- {
- WSADATA wsaData;
- WSAStartup(MAKEWORD(2, 2), &wsaData);
- }
- //**********************************************************************
- int main(int argc, char*argv[])
- {
- SOCKET socketS;
- InitWinsock();
- struct sockaddr_in local;
- struct sockaddr_in from;
- /* unsigned int fileSize;
- char* stringFileSize;
- FILE *pFile;
- if ((pFile = fopen(argv[1], "rb")) == NULL) {
- fprintf(stderr, "Error loading the file\n");
- }
- fseek(pFile, 0, SEEK_END);
- fileSize = ftell(pFile);
- rewind(pFile);
- */
- /*
- unsigned char packetNumber = 0;
- unsigned int charIndex = 0;
- */
- int fileSize = 15;
- int fromlen = sizeof(from);
- local.sin_family = AF_INET;
- local.sin_port = htons(LOCAL_PORT);
- local.sin_addr.s_addr = INADDR_ANY;
- socketS = socket(AF_INET, SOCK_DGRAM, 0);
- if (bind(socketS, (sockaddr*)&local, sizeof(local)) != 0) {
- printf("Binding error!\n");
- getchar(); //wait for press Enter
- return 1;
- }
- //**********************************************************************
- char buffer_rx[BUFFERS_LEN];
- char buffer_tx[BUFFERS_LEN];
- #ifdef SENDER
- sockaddr_in addrDest;
- addrDest.sin_family = AF_INET;
- addrDest.sin_port = htons(TARGET_PORT);
- InetPton(AF_INET, _T(TARGET_IP), &addrDest.sin_addr.s_addr);
- /* SENDING HEADER
- buffer[0-3] fileSize, - convert INT into 4 CHARs
- buffer[4-....] fname
- */
- /*
- FILE *pFile;
- pFile = fopen(fname, "wb");
- */
- /*
- while (charIndex <= fileSize){
- buffer_tx[0] = packetNumber++;
- strncpy((buffer_tx+2), pFile, PACKET_SIZE);
- charIndex += PACKET_SIZE
- }
- */
- strncpy(buffer_tx, "adsfasdf", BUFFERS_LEN); //put some data to buffer
- printf("Sending packet.\n");
- sendto(socketS, buffer_tx, strlen(buffer_tx), 0, (sockaddr*)&addrDest, sizeof(addrDest));
- closesocket(socketS);
- #endif // SENDER
- #ifdef RECEIVER
- strncpy(buffer_rx, "No data received.\n", BUFFERS_LEN);
- printf("Waiting for datagram ...\n");
- if (recvfrom(socketS, buffer_rx, sizeof(buffer_rx), 0, (sockaddr*)&from, &fromlen) == SOCKET_ERROR) {
- printf("Socket error!\n");
- getchar();
- return 1;
- }
- else
- printf("Datagram: %s", buffer_rx);
- closesocket(socketS);
- #endif
- //**********************************************************************
- getchar(); //wait for press Enter
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement