Link to home
Start Free TrialLog in
Avatar of neta
neta

asked on

Need an example of client socket sending data

Need an example of client socket sending data to server
written for windows please with out MFC

it can be in c or c++

Any information will be appreciated

Regards
neta
ASKER CERTIFIED SOLUTION
Avatar of chensu
chensu
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ufolk123
ufolk123

Hi neeta,

#include <stdio.h>
#include <winsock.h>
#include <string.h>
#include <stdlib.h>
#include<windows.h>

#define SERVERPORT 5555
#define CLIENTPORT 5554

int SockId=0;
static int iCount=0;


int InitialiseClient(void)
{
    int error;
      SOCKADDR_IN SockData;
      SOCKADDR_IN SockSock;
    int sockid;
    WORD wVersionRequested;
      WSADATA wsaData;
    wVersionRequested = MAKEWORD( 2, 0 );
    error = WSAStartup( wVersionRequested, &wsaData );
        if ( error != 0 ) {exit(0);}
      
      SockData.sin_family = AF_INET;
      SockData.sin_port = htons( CLIENTPORT );
    SockData.sin_addr.s_addr=htonl(INADDR_ANY);

      sockid = socket ( AF_INET , SOCK_DGRAM ,0);
      
      if ( sockid == -1 )
      {
          printf ( "\n Socket Failed %d\n",WSAGetLastError() );
            exit ( 1 );
      }
      error = bind ( sockid , (struct sockaddr *)&SockData , (int ) sizeof ( SockData ) );
      if ( error )
      {
          printf ( "\n  Bind Failed %d \n" ,WSAGetLastError());
            closesocket( sockid );
          exit(1);
      }

      SockSock.sin_family = AF_INET;
      /*Connect to server at IP:192.168.174.32 on port SERVER_PORT*/
      SockSock.sin_port = htons(SERVER_PORT );
    SockSock.sin_addr.s_addr=inet_addr("192.168.174.32");
      
      int iState=connect ( sockid,(sockaddr FAR*)&SockSock,sizeof(SockSock));    
      printf("State of connection =%d ",iState);fflush(stdout);
      return sockid;
}



void main(void )
{
    char command[256];
    char header[2],result[256];
      int iCount=1;
      SockId=InitialiseClient();

    header[0]=1;
      command[0]=iCount;
      header[1]=(char)1;
      header[2]=0;

    strcpy(&command[1],"KILL PROCESS");                  
      
      if(send(SockId,header,1,0)!=1)
      {
      printf("Serious Problem header");
      }
      printf(" Problem header=%s data=%d",header,strlen(header));


      int Data=recv(SockId,result,1,0);
      
      if(Data!=1)
            {
          printf("Recv :Len=%d LineLen=%d Error=%d",Data,2,WSAGetLastError());
          exit(1);
            }




This code connects to a UDP server listening on port SERVER_PORT.
You may need to code the server portion also.


Regards,
ufolk123
Avatar of neta

ASKER

Thanks you all for your replay
My problem is how to get the server ip
by his name.

i need to establish the connection
with the server with out knowing his
ip.
only with knowing his HOSTNAME
How should i change the example ufolk123
send ?

Best regards
Neta !!!

Avatar of neta

ASKER

Thanks you all for your replay
My problem is how to get the server ip
by his name.

i need to establish the connection
with the server with out knowing his
ip.
only with knowing his HOSTNAME
How should i change the example ufolk123
send ?

Best regards
Neta !!!

Use the gethostbyname function.