I am attempting to send the stats command to memcached via netcat, however, I am not getting anything back from memcached...

I have tried

echo "stats" > commands.txt
nc -u 11211 < commands.txt

I have also tried

echo stats | nc -u 11211

From what I have read on the bottom of the Memcached Documentation, line 1176, the command when being sent might have to include

Each UDP datagram contains a simple frame header, followed by data in the
same format as the TCP protocol described above. In the current
implementation, requests must be contained in a single UDP datagram, but
responses may span several datagrams. (The only common requests that would
span multiple datagrams are huge multi-key "get" requests and "set"
requests, both of which are more suitable to TCP transport for reliability
reasons anyway.)

The frame header is 8 bytes long, as follows (all values are 16-bit integers 
in network byte order, high byte first):

0-1 Request ID
2-3 Sequence number
4-5 Total number of datagrams in this message
6-7 Reserved for future use; must be 0

My question is, How do I send the stats command via udp to Memcached using netcat?


The following worked, You must specify the frameheader

printf '\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n' | nc -u 11211

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.