#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
Go to the source code of this file.
Defines | |
#define | MESSAGE 100 |
Functions | |
int | main (int argc, char *argv[]) |
|
Definition at line 9 of file receiver.cpp. |
|
Definition at line 12 of file receiver.cpp. 00013 { 00014 int MySocket; 00015 struct sockaddr_in receiver_addr; 00016 struct sockaddr_in sender_addr; 00017 unsigned int message_length; 00018 char *host; 00019 char *message; 00020 char buffer[MESSAGE]; 00021 unsigned short receiver_port; 00022 int received_MessageSize; 00023 char* buffer2; 00024 00025 receiver_port= atoi(argv[1]); 00026 00027 MySocket = socket(AF_INET, SOCK_DGRAM, 0); 00028 00029 if(MySocket < 0) 00030 { 00031 cout<<"socket failed\n"; 00032 } 00033 00034 cout<<"socket is a success. \n"; 00035 00036 memset(&receiver_addr, 0, sizeof(receiver_addr)); 00037 receiver_addr.sin_family = AF_INET; 00038 receiver_addr.sin_addr.s_addr = htonl(INADDR_ANY); 00039 receiver_addr.sin_port = htons(receiver_port); 00040 00041 if(bind(MySocket , (struct sockaddr *)&receiver_addr 00042 , sizeof(receiver_addr)) < 0) 00043 00044 cout<<"binding has failed\n"; 00045 cout<<"binding has succeeded\n"; 00046 00047 for(;;) 00048 { 00049 message_length = sizeof(sender_addr); 00050 memset( buffer, 0, sizeof(buffer) ); 00051 if ((received_MessageSize = recvfrom(MySocket , buffer , MESSAGE ,0, 00052 (struct sockaddr *) &sender_addr, &message_length)) < 0) { 00053 cout<<"recvfrom() failed\n"; 00054 } 00055 00056 cout << message_length; 00057 00058 cout<<"message has been received \n"; 00059 cout<<"THE MESSAGE IS : "<< buffer <<endl; 00060 00061 00062 memset( buffer, 0, sizeof(buffer) ); 00063 buffer2 = "1234567890"; 00064 00065 memcpy( buffer, buffer2, MESSAGE ); 00066 00067 int i = 0; 00068 00069 for(; i < 14; i++ ) 00070 printf("[%d]%c", buffer[i], buffer2[i] ); 00071 00072 00073 cout << "done" << endl; 00074 00075 if(sendto(MySocket, buffer, MESSAGE, 0, 00076 (struct sockaddr *) &sender_addr , sizeof(sender_addr)) != 00077 MESSAGE ) 00078 00079 cout<<"sendto don't work"<<endl; 00080 } 00081 00082 } |