Browse Source

update

master
zhaohe 2 years ago
parent
commit
50747c88b3
  1. 2
      libxsync
  2. 1
      src/logger.hpp
  3. 19
      src/xsync_udp_factory_impl.cpp

2
libxsync

@ -1 +1 @@
Subproject commit c9dc057143720efe76a21368ded925a2a0314288
Subproject commit f3d9fc167d1c8b30e9dba173ee81daddd3707b40

1
src/logger.hpp

@ -14,3 +14,4 @@ int32_t zos_get_ticket();
ZLOGE("ASSERT", "condition: %s", #cond); \
exit(-1); \
}

19
src/xsync_udp_factory_impl.cpp

@ -29,6 +29,7 @@ class XSUDP : public I_XSUDP {
virtual xs_error_code_t receive(char* data, int32_t& length, XsyncNetAdd& from, int overtimems) override;
virtual xs_error_code_t startReceive(onMessage_t onMessage) override;
virtual xs_error_code_t stopReceive() override;
virtual xs_error_code_t clearRxBuffer() override;
virtual ~XSUDP();
};
@ -68,8 +69,8 @@ xs_error_code_t XSUDP::receive(char* data, int32_t& length, XsyncNetAdd& from, i
struct sockaddr_in sockaddr = {0};
timeval timeout;
timeout.tv_sec = overtimems;
timeout.tv_usec = 0;
timeout.tv_sec = overtimems / 1000;
timeout.tv_usec = overtimems % 1000 * 1000;
if (setsockopt(m_sock_fd, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(timeout)) == -1) {
return kxs_ec_setsockopt_rx_timeout_fail;
}
@ -129,6 +130,20 @@ xs_error_code_t XSUDP::stopReceive() {
m_rxbufsize = 0;
}
}
xs_error_code_t XSUDP::clearRxBuffer() {
char buf[1024];
int32_t length = 1024;
XsyncNetAdd from;
xs_error_code_t ret = kxs_ec_success;
while (ret == kxs_ec_success) {
ret = receive(buf, length, from, 1);
}
return kxs_ec_success;
}
XSUDP::~XSUDP() {
stopReceive();

Loading…
Cancel
Save