Skip to content

Commit 005e4c8

Browse files
author
林兴
committed
read timeout
1 parent f6010a4 commit 005e4c8

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

rclientpp/core/async_socket_client.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ namespace rcpp {
118118

119119
int AsyncSocketClient::write(const char* buf, int len, int timeoutms)
120120
{
121+
//int written_len = 0;
121122
int written_len = write(buf, len);
122123
if (written_len == len)
123124
{
@@ -150,7 +151,7 @@ namespace rcpp {
150151
int AsyncSocketClient::read(char* buf, int len, int timeoutms)
151152
{
152153
int readlen = read(buf, len);
153-
if (readlen > 0)
154+
if (readlen >= 0)
154155
{
155156
return readlen;
156157
}
@@ -167,7 +168,7 @@ namespace rcpp {
167168
{
168169
_err_code = ret;
169170
printf("read, select socket select timeout\n");
170-
return 0;
171+
return -1;
171172
}
172173
if (FD_ISSET(_sockfd, &_rfds))
173174
{

rclientpp/core/rclient.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,16 @@ std::shared_ptr<BaseValue> RClient::get_results(int& ret_code)
265265
READ_DATA:
266266
//int len = sockets::Read(_sockfd, (void*)_bufptr->write_ptr(), _bufptr->writable_size());
267267
int len = _aclient->read(_bufptr->write_ptr(), _bufptr->writable_size(), _read_timeout);
268-
if (len <= 0)
268+
if (len == 0)
269269
{
270270
ret_code = TCP_CONNECTION_ERROR;
271271
return nullptr;
272272
}
273+
else if (len == -1)
274+
{
275+
ret_code = TCP_TIMEOUT;
276+
return nullptr;
277+
}
273278
_bufptr->has_written(len);
274279
char* text = _bufptr->read_ptr();
275280
size_t old_pos = _bufptr->get_read_off();

0 commit comments

Comments
 (0)