Java Socket实战(八)

2014-11-24 10:46:19 · 作者: · 浏览: 5
try {
ois.close();
} catch (Exception e) {}
}
}
}
IOUtil.java
[java]
package com.googlecode.garbagecan.test.socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class IOUtil {
public static void closeQuietly(InputStream is) {
try {
is.close();
} catch (Exception e) {
}
}
public static void closeQuietly(OutputStream os) {
try {
os.close();
} catch (Exception e) {
}
}
public static void closeQuietly(Socket socket) {
try {
socket.close();
} catch (Exception e) {
}
}
}
6. 最后是一个测试类,其中包含了两种实现的测试test1()和test2()。其中只是创建server和client的部分不同。下面说一下客户端怎样发送请求并获取服务器端响应。
首先创建一个MyRequest的实例,在其中告诉服务器端希望服务器端使用那个类的那个方法来处理这个相应,然后是参数类型列表和参数列表。 然后使用MyClient的execute()方法来发送上面创建的请求,并获取服务器端响应。也可以使用MyGenericResponseHandler接口来直接获取相应中的结果。
[java]
package com.googlecode.garbagecan.test.socket.sample10;
import java.util.List;
public class Test {
private static int port = 10000;
public static void main(String[] args) throws Exception {
//test1();
test2();
}
public static void test1() throws Exception {
MyServer myServer = new MyServerSimpleImpl(port);
myServer.startup();
Thread.sleep(3000);
MyClient myClient = new MyClientSimpleImpl("localhost", port);
MyRequest request = null;
MyResponse response = null;
request = new MyGenericRequest(MyUserServiceImpl.class, "list", new Class< >[]{int.class}, new Object[]{2});
response = myClient.execute(request);
System.out.println(response.getResult());
List users = myClient.execute(request, new MyGenericResponseHandler>());
System.out.println(users);
request = new MyGenericRequest(MyUserServiceImpl.class, "findByName", new Class< >[]{String.class}, new Object[]{"kongxx"});
response = myClient.execute(request);
System.out.println(response.getResult());
User user = myClient.execute(request, new MyGenericResponseHandler());
System.out.println(user);
response = myClient.execute(new MyGenericRequest(MyUserServiceImpl.class, "test", new Class< >[]{}, new Object[]{}));
System.out.println(response.getResult());
}
public static void test2() throws Exception {
MyServer myServer = new MyServerNIOImpl(port);
myServer.startup();
Thread.sleep(3000);
MyClient myClient = new MyClientNIOImpl("localhost", port);
MyRequest request = null;
MyResponse response = null;
request = new MyGenericRequest(MyUserServiceImpl.class, "list", new Class< >[]{int.class}, new Object[]{2});
response = myClient.execute(request);
System.out.println(response.getResult());
List users = myClient.execute(request, new MyGenericResponseHandler>());
System.out.println(users);
request = new MyGenericRequest(MyUserServiceImpl.class, "findByName"