im tring to make a connection to a port and im tring to send some data to and then recv it but.. i dont fully understand sockets yet.. anyhelp
Code:
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <unistd.h>
#include <arpa/inet.h>
#define MYPORT 3490
#define ALLOW 10
static void
BAIL( const char *on_what )
{
fputs( strerror( errno), stderr );
fputs( on_what, stderr );
exit(1);
}
int main( int argc, char **argv )
{
struct sockaddr_in mysock;
struct sockaddr_in their_addr;
char *msg = "xlordt was here";
int s_sock;
int b_bind;
int c_connet;
int s_listen;
int a_accept, r_recv;
int size, len, bsent;
s_sock = socket( AF_INET, SOCK_STREAM, 0 );
if( s_sock == -1 )
{
BAIL( "error on: socket( )\n" );
}
printf( "Status on socket( ): OK!\n" );
mysock.sin_family = AF_INET;
mysock.sin_port = htons( MYPORT );
mysock.sin_addr.s_addr = inet_addr( "127.0.0.1" );
memset( &mysock, 0, sizeof mysock );
b_bind = bind( s_sock,( struct sockaddr *)&mysock,sizeof( struct sockaddr ));
if( b_bind == -1 )
{
BAIL( "error on: bind( )\n" );
}
printf( "Status on bind( ): OK!\n" );
c_connet = connect( s_sock,( struct sockaddr *)&mysock,sizeof( struct sockaddr ));
if( c_connet == -1 )
{
BAIL( "error on: connect( )\n" );
}
printf( "Status on connect( ): OK!\n" );
s_listen = listen( s_sock, ALLOW );
if( s_listen == -1 )
{
BAIL( "error on: listen( )\n" );
}
printf( "Status on listen: OK!\n" );
size = sizeof( struct sockaddr_in );
a_accept = accept( s_sock,( struct sockaddr *)&their_addr,&size );
if( a_accept == -1 )
{
BAIL( "error on: accept( )\n" );
}
printf( "Status on accept: OK!\n" );
len = strlen( msg );
bsent = send( s_sock, msg, len, 0 );
if( bsent == -1 )
{
BAIL( "error on: send( )\n" );
}
r_recv = recv( s_sock, msg, len, 0 );
printf( "%s", r_recv );
return 0;
}