Agilent Technologies N5183A MXG User Manual

Page 122

Advertising
background image

112

Agilent N518xA, E8663B, E44x8C, and E82x7D Signal Generators Programming Guide

Programming Examples
LAN Programming Interface Examples

*

* $Return: (int) . . . . . . . . A file descriptor similar to open(1).$

*

* $Errors: returns -1 if anything goes wrong $

*

***************************************************************************/

SOCKET openSocket(const char *hostname, int portNumber)

{

struct hostent *hostPtr;

struct sockaddr_in peeraddr_in;

SOCKET s;

memset(&peeraddr_in, 0, sizeof(struct sockaddr_in));

/***********************************************/

/* map the desired host name to internal form. */

/***********************************************/

hostPtr = gethostbyname(hostname);

if (hostPtr == NULL)

{

fprintf(stderr,"unable to resolve hostname '%s'\n", hostname);

return INVALID_SOCKET;

}

/*******************/

/* create a socket */

/*******************/

s = socket(AF_INET, SOCK_STREAM, 0);

if (s == INVALID_SOCKET)

{

fprintf(stderr,"unable to create socket to '%s': %s\n",

hostname, strerror(errno));

return INVALID_SOCKET;

}

memcpy(&peeraddr_in.sin_addr.s_addr, hostPtr->h_addr, hostPtr->h_length);

peeraddr_in.sin_family = AF_INET;

peeraddr_in.sin_port = htons((unsigned short)portNumber);

if (connect(s, (const struct sockaddr*)&peeraddr_in,

sizeof(struct sockaddr_in)) == SOCKET_ERROR)

Advertising
This manual is related to the following products: