net.h 826 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef JNI_EXTRA_NET_NET_H_
  2. #define JNI_EXTRA_NET_NET_H_
  3. #include <netinet/in.h>
  4. #include <string>
  5. #include "utils/Log.h"
  6. typedef unsigned char byte;
  7. namespace net {
  8. enum Error {
  9. E_TIMEOUT = -10000,
  10. };
  11. class Addr {
  12. public:
  13. struct sockaddr addr;
  14. };
  15. class Conn {
  16. public:
  17. virtual int Write(byte* bytes, int bytes_len) = 0;
  18. /**
  19. * timeout: 超时时间 毫秒
  20. * return >0 读到数据
  21. * =0 已关闭
  22. * -10000 读取超时
  23. * 其他 出错
  24. */
  25. virtual int Read(byte* buffer, int buffer_len, int timeout) = 0;
  26. virtual void Close() = 0;
  27. virtual Addr LocalAddr() = 0;
  28. virtual Addr RemoteAddr() = 0;
  29. virtual ~Conn(){};
  30. };
  31. Conn* Dial(const std::string &network, const std::string &address, long timeout_millis);
  32. } /* namespace net */
  33. #endif /* JNI_EXTRA_NET_NET_H_ */