Code Monkey home page Code Monkey logo

jzmq3-x's People

Contributors

ajawalker avatar amuraru avatar aorzecho avatar azverkan avatar benjaminfjones avatar dbudworth avatar dln avatar ealgell avatar gonzus avatar gui81 avatar h4cc avatar ianbarber avatar imleon avatar ipechorin avatar jchown avatar jhawk28 avatar kwo avatar lothiraldan avatar mato avatar miniway avatar mipper avatar rimmington avatar rjsmith avatar sammedic avatar shripchenko avatar sustrik avatar svirpridon avatar technocoreai avatar trevorbernard avatar vperron avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jzmq3-x's Issues

recv(ByteBuffer) fails if message length is bigger than BB length

  1. create a client that receives messages via socket.recvByteBuffer() or socket.recvZeroCopy and pass a ByteBuffer of capacity 'x'
  2. create a server that sends messages with length bigger than 'y'

Then:

  • ØMQ spec mentions that when a message is bigger than the expected size, the remaining bytes will be dropped
  • the current code seems to implement this correctly (I'll check some stuff and may provide an additional patch, also including preserving and respecting the proper position and limit values)

What happens:

  • the JNI code calls the ByteBuffer.position() with the received value from the zmq_send(), which may be bigger than the length value, and hence will throw an exception because position will be bigger than capacity (and limit)

What should happen:

  • as the bytes are dropped after the available space is reached, that value is the one that shall be used to re-set the position.
  • in other words, a recvBB or recvNoCopy shall return the ByteBuffer filled up with as much bytes as space permits, but not throw an exception or, fortunately not happening, not crashing

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.