| version 1.6, 2003/11/20 11:55:16 |
version 1.7, 2006/08/14 10:03:21 |
| Line 40 netConnection::~netConnection(void) |
|
| Line 40 netConnection::~netConnection(void) |
|
| #endif |
#endif |
| } |
} |
| |
|
| inline int netConnection::isConnected(void) |
int netConnection::isConnected(void) |
| { |
{ |
| return(handle<0?0:1); |
return(handle<0?0:1); |
| } |
} |
| |
|
| inline void netConnection::setPort(const int newport) |
void netConnection::setPort(const int newport) |
| { |
{ |
| port=newport; |
port=newport; |
| } |
} |
| Line 140 void netConnection::disconnect(void){ |
|
| Line 140 void netConnection::disconnect(void){ |
|
| } |
} |
| } |
} |
| |
|
| inline int netConnection::writeLine(void){ |
int netConnection::writeLine(void){ |
| return(write(handle,"\n",1)); |
return(write(handle,"\n",1)); |
| } |
} |
| |
|
| inline int netConnection::writeLine(const char*s){ |
int netConnection::writeLine(const char *s){ |
| register int ret; |
register int ret; |
| ret=write(handle,s,strlen(s)); |
|
| ret+=writeLine(); |
if ((ret = writeStr(s)) != strlen(s)) |
| |
return ret; |
| |
|
| |
ret += writeLine(); |
| |
|
| return(ret<0?-1:ret); |
return(ret<0?-1:ret); |
| } |
} |
| |
|
| inline int netConnection::writeStr(const char*s){ |
int netConnection::writeStr(const char*s){ |
| return(write(handle,s,strlen(s))); |
return(write(handle,s,strlen(s))); |
| } |
} |
| |
|
| inline int netConnection::writeData(const void*p,int len){ |
int netConnection::writeData(const void*p,int len){ |
| return(write(handle,p,len)); |
return(write(handle,p,len)); |
| } |
} |
| |
|
| int netConnection::readData(char*buffer,const int size){ |
int netConnection::readData(char*buffer, const int size) |
| #ifdef __MSDOS__ |
{ |
| buffer[0]='\0'; |
register int ret, to_read, i; |
| buffer[size]='\0'; |
|
| #else |
|
| struct timeval tv; |
struct timeval tv; |
| fd_set rd,act; |
fd_set read_set; |
| |
|
| |
if (! isConnected()) |
| |
return 0; |
| |
|
| |
for (to_read = size; to_read > 0; ) { |
| |
|
| if(isConnected()){ |
FD_ZERO(&read_set); |
| FD_ZERO(&rd); |
FD_SET(handle, &read_set); |
| FD_ZERO(&act); |
tv.tv_sec = 0; |
| FD_SET(handle,&rd); |
tv.tv_usec = 0; |
| FD_SET(handle,&act); |
|
| tv.tv_sec=0; |
ret = select(handle + 1, &read_set, NULL, NULL, &tv); |
| tv.tv_usec=0; |
|
| |
if (ret < 0) { |
| select(handle+1,&rd,NULL,&act,&tv); |
disconnect(); |
| |
break; |
| if(FD_ISSET(handle,&rd)){ |
} |
| int i; |
|
| i=read(handle,buffer,size-1); |
if (ret == 0) |
| if(i<=0){ |
break; |
| disconnect(); |
|
| buffer[0]='\0'; |
i = read(handle, buffer + size - to_read, to_read); |
| } |
|
| else buffer[i]='\0'; |
if (i <= 0) { |
| |
disconnect(); |
| |
break; |
| } |
} |
| /* |
|
| if(FD_ISSET(handle,&act)){ |
to_read -= i; |
| disconnect(); |
|
| buffer[0]='\0'; |
|
| } |
|
| */ |
|
| } |
} |
| else buffer[0]='\0'; |
|
| #endif |
|
| |
|
| return(strlen(buffer)); |
return size - to_read; |
| } |
} |
| |
|
| int netConnection::readLine(char*buffer,const int size){ |
int netConnection::readLine(char*buffer,const int size){ |