#include <UnixSocketReceiver.hpp>
Public Methods | |
UnixSocketReceiver (short Listen_Port) | |
~UnixSocketReceiver () | |
bool | Listen () |
int | getSocket () |
Static Private Methods | |
void * | ListenThread (void *data) |
Private Attributes | |
int | ListenSocket |
sockaddr_in | srv |
sockaddr_in | client |
|
Definition at line 3 of file UnixSocketReceiver.cpp. 00004 { 00005 ListenSocket = INVALID_SOCKET; 00006 00007 memset( &srv, 0, sizeof( struct sockaddr_in ) ); 00008 memset( &client, 0, sizeof( struct sockaddr_in ) ); 00009 00010 srv.sin_family = PF_INET; 00011 srv.sin_addr.s_addr = htonl( INADDR_ANY ); 00012 srv.sin_port = htons( Listen_Port ); 00013 } |
|
Definition at line 28 of file UnixSocketReceiver.cpp. 00029 { 00030 if ( ListenSocket != INVALID_SOCKET ) 00031 { 00032 closesocket(ListenSocket); 00033 } 00034 } |
|
Definition at line 73 of file UnixSocketReceiver.cpp. Referenced by main().
00074 { 00075 ListenSocket = socket(PF_INET, SOCK_DGRAM, 0); 00076 00077 if ( ListenSocket == INVALID_SOCKET ) 00078 { 00079 printf( "Error: listen socket creation failed\n" ); 00080 return false; 00081 } 00082 00083 if( bind(ListenSocket, (struct sockaddr*)&srv, sizeof(srv) ) != 0 ) 00084 { 00085 printf("Error: bind on listen socket failed\n"); 00086 closesocket(ListenSocket); 00087 return false; 00088 } 00089 00090 int ThreadID; 00091 00092 pthread_t thread; 00093 ThreadID = pthread_create( &thread, 0, 00094 UnixSocketReceiver::ListenThread, 00095 (void*)this 00096 ); 00097 if ( ThreadID ) 00098 { 00099 printf("Error creating listen thread\n"); 00100 return false; 00101 } else { 00102 return true; 00103 } 00104 } |
|
Definition at line 41 of file UnixSocketReceiver.cpp. 00042 { 00043 char buf[ BUFFER_SIZE ]; 00044 UnixSocketReceiver* socketData = (UnixSocketReceiver*)data; 00045 00046 int msglen = sizeof( socketData->client); 00047 00048 while(1) // Infinite loop 00049 { 00050 int result = recvfrom( socketData->ListenSocket, 00051 buf, 00052 sizeof(buf) - 1, 0, 00053 (struct sockaddr*)&socketData->client, 00054 (socklen_t *)&msglen 00055 ); 00056 00057 if ( result > 0 ) 00058 { 00059 00060 buf[ result ] = 0; 00061 00062 printf("Message received from host %s port %i\n", 00063 inet_ntoa( socketData->client.sin_addr ), 00064 ntohs( socketData->client.sin_port ) 00065 ); 00066 00067 printf("%s",buf); 00068 fflush(0); 00069 } 00070 } 00071 } |
|
Definition at line 36 of file UnixSocketReceiver.cpp. Referenced by main().
00037 { 00038 return ListenSocket; 00039 } |
|
Definition at line 20 of file UnixSocketReceiver.hpp. Referenced by ListenThread().
|
|
Definition at line 23 of file UnixSocketReceiver.hpp. Referenced by ListenThread().
|
|
Definition at line 22 of file UnixSocketReceiver.hpp. |