敢想敢做,自信自强!一个程序员的成长日记!
想问下你我想 memcache 通过udp 通信但是一直报SERVER_ERROR multi-packet request not supported多包请求是什么?
我测试发现的情况是这样:memcached的UDP服务器,请求包只支持单个UDP包,但是响应包支持多个UDP包。也就是说,假设你用SET发送数据到memcached服务器,只能是一个包且不能超过UDP包的最大限制(64KB)。这里可以确认一下你的代码,看是否同时send了多个包。
$b = new Memcache;$b->connect("udp://127.0.0.1",16222);$d = $b->set("testKey","usa");就是这样而已 我怎么判断 发出去的是是不是多包
从表面看来,字节数没超过64KB,应该不会分成多包。我怀疑是PHP语言实现的这个客户端有些问题,你用TCPDUMP抓包看看吧。如果是memcached客户端的问题,你可以绕过PHP的实现,直接基于socket来写一个自己的客户端。
想问下你
回复删除我想 memcache 通过udp 通信
但是一直报SERVER_ERROR multi-packet request not supported
多包请求是什么?
我测试发现的情况是这样:memcached的UDP服务器,请求包只支持单个UDP包,但是响应包支持多个UDP包。也就是说,假设你用SET发送数据到memcached服务器,只能是一个包且不能超过UDP包的最大限制(64KB)。
删除这里可以确认一下你的代码,看是否同时send了多个包。
$b = new Memcache;
回复删除$b->connect("udp://127.0.0.1",16222);
$d = $b->set("testKey","usa");
就是这样而已 我怎么判断 发出去的是是不是多包
从表面看来,字节数没超过64KB,应该不会分成多包。
删除我怀疑是PHP语言实现的这个客户端有些问题,你用TCPDUMP抓包看看吧。
如果是memcached客户端的问题,你可以绕过PHP的实现,直接基于socket来写一个自己的客户端。