该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-15
最后修改:2009-10-15
unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,是IPC的方法之一,特定于*nix系平台。使用unix domain socket有三个好处: package com.google.code.juds.test; import java.io.IOException; import com.google.code.juds.*; import java.io.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class TimeServer { public static void main(String[] args) { try { UnixDomainSocketServer server = new UnixDomainSocketServer( "/home/dennis/time", UnixDomainSocket.SOCK_STREAM); OutputStream output = server.getOutputStream(); Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); output.write(dateFormat.format(date).getBytes()); } catch (IOException e) { e.printStackTrace(); } } }
byte[] b = new byte[128]; UnixDomainSocketClient socket = new UnixDomainSocketClient("/home/dennis/time", UnixDomainSocket.SOCK_STREAM); InputStream in = socket.getInputStream(); in.read(b); System.out.println("Text received: \"" + new String(b) + "\""); socket.close();
显然,juds还只支持阻塞IO,考虑可进一步使用select、poll来扩展实现非阻塞IO。 byte[] b = new byte[128]; UnixDomainSocketClient socket = new UnixDomainSocketClient("/home/dennis/memcached", UnixDomainSocket.SOCK_STREAM); OutputStream out = socket.getOutputStream(); String text = "version\r\n"; out.write(text.getBytes()); InputStream in = socket.getInputStream(); in.read(b); System.out.println("Text received: \"" + new String(b) + "\""); socket.close();
输出 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-18
Xmemcached准备创建一个支持unix domain socket的分支,初步的测试表明比之使用tcp socket访问memcached快上很多,更详细的报告等待完成后再给出。
|
|
返回顶楼 | |
浏览 5627 次