1.Connector(interface)连接器
职责:建立和其它主机的socket连接,核心接口方法为connect(int timeout)
2.TcpConnector(class) implements Connector
建立tcp的socket连接
3.Transceiver(interface)传输器
职责:对由connector打开的socket接口做read和write操作
4.TcpTransceiver implements Transceiver
参考2
5.Connector --> connect(int timeout) --> Transceiver
6.测试代码
Communicator ci = Ice.Util.initialize();
Instance is = Ice.Util.getInstance(ci);
Connector conn = new TcpConnector(is,"xxx.xxx.xxx.xxx",80);
assert(conn!=null);
Transceiver ts = conn.connect(30);
assert(ts!=null);
BasicStream bs = new BasicStream(is);
bs.writeString("GET / HTTP/1.1
");
ts.write(bs,30);
bs.reset();
ts.read(bs, 300);
System.out.println(bs.readString());
上面的代码利用Icejava的底层网络通信机制完成http请求。
测试结果:
在服务器端的access_log可以看到访问记录,说明请求发送成功,但请求的协议头有问题,返回400状态码