37 struct sockaddr_in sAddress;
38 int nAddressSize=
sizeof(
struct sockaddr_in);
42 if(1 != sscanf(szURI,
"inet://%d", &nHostPort))
45 pPipe->
sfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
47 printf(
"\nCould not make a socket\n");
54 sAddress.sin_addr.s_addr = INADDR_ANY;
55 sAddress.sin_port = htons(nHostPort);
56 sAddress.sin_family = AF_INET;
59 if(
SOCKET_ERROR == bind(pPipe->
sfd ,(
struct sockaddr*) &sAddress,
sizeof(sAddress))) {
60 printf(
"\nCould not connect to host\n");
68 printf(
"\nCould not listen\n");
73 pPipe->
cfd = accept(pPipe->
sfd, (
struct sockaddr*) &sAddress, (socklen_t*) &nAddressSize);
91 char *pc = strrchr(szURI,
':');
93 strncpy(strHostName, szURI+7, (
long) pc - (
long) szURI - 7);
94 strHostName[(long) pc - (
long) szURI - 7] = '\0';
95 nHostPort = atoi(++pc);
100 pPipe->cfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
107 struct hostent* pHostInfo;
109 struct sockaddr_in sAddress;
112 pHostInfo = gethostbyname(strHostName);
115 memcpy(&nHostAddress, pHostInfo->h_addr, pHostInfo->h_length);
118 sAddress.sin_addr.s_addr = nHostAddress;
119 sAddress.sin_port = htons(nHostPort);
120 sAddress.sin_family = AF_INET;
123 if(
SOCKET_ERROR == connect(pPipe->
cfd, (
struct sockaddr*) &sAddress,
sizeof(sAddress))) {
124 printf(
"\nCould not connect to host\n");
143 printf(
"\nCould not close client socket\n");
184 count = read(pPipe->
cfd, (
void*) pData, (
size_t) nSize);
188 }
else if(count == -1) {
232 count = write(pPipe->
cfd, (
void*) pData, (
size_t) nSize);
236 }
else if(count == -1) {