diff options
author | Teddy <[email protected]> | 2013-08-23 11:11:23 +0800 |
---|---|---|
committer | Teddy <[email protected]> | 2013-08-23 11:11:23 +0800 |
commit | 8d5489095e4b0526e4152f7e3a1e9bc3a758e9bd (patch) | |
tree | b6b2ebca38aad5c63fa92846d6793a9e7ba817ff /client/Socket-demo/SocketClient.java | |
parent | a44601d57a7b96d69848d5bdd2fa6f3e442d0c85 (diff) | |
parent | 0b0d350bfe97c0101f31d767d54892f7cef05b96 (diff) |
Merge branch 'master' of github.com:Determinant/piztor
Diffstat (limited to 'client/Socket-demo/SocketClient.java')
-rw-r--r-- | client/Socket-demo/SocketClient.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/client/Socket-demo/SocketClient.java b/client/Socket-demo/SocketClient.java new file mode 100644 index 0000000..df42484 --- /dev/null +++ b/client/Socket-demo/SocketClient.java @@ -0,0 +1,107 @@ +package com.example.test; + + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.net.UnknownHostException; + +public class SocketClient { + + static Socket client; + + public SocketClient(String site, int port)throws UnknownHostException,IOException{ + try{ + client = new Socket(site,port); + }catch (UnknownHostException e){ + throw e; + }catch (IOException e){ + throw e; + } + } + + public Myrespond sendMsg(Myrequest req)throws IOException{ + try{ + DataOutputStream out = new DataOutputStream(client.getOutputStream()); + int tmp = (Integer) req.contain.get(0); + switch(tmp){ + case 0: + String id = (String) req.contain.get(1); + String pass = (String) req.contain.get(2); + out.writeUTF(id); + out.writeUTF(pass); + break; + case 1: + int tk1 = (Integer) req.contain.get(1); + int acc = (Integer) req.contain.get(2); + String mess = (String) req.contain.get(3); + out.writeInt(tk1); + out.writeInt(acc); + out.writeUTF(mess); + break; + case 2: + int tk2 = (Integer) req.contain.get(1); + double slot = (Double) req.contain.get(2); + double slat = (Double) req.contain.get(3); + out.writeInt(tk2); + out.writeDouble(slot); + out.writeDouble(slat); + break; + case 3: + int tk3 = (Integer) req.contain.get(1); + int gid = (Integer) req.contain.get(2); + out.writeInt(tk3); + out.writeInt(gid); + break; + } + out.flush(); + client.shutdownOutput(); + DataInputStream in = new DataInputStream(client.getInputStream()); + int type = in.readUnsignedByte(); + Myrespond r = new Myrespond(); + switch(type){ + case 0: + int id = in.readInt(); + int status = in.readUnsignedByte(); + r.contain.add(0); + r.contain.add(id); + r.contain.add(status); + break; + case 1: + r.contain.add(1); + //reserved + break; + case 2: + r.contain.add(2); + //reserved + break; + case 3: + int n = in.readInt(); + r.contain.add(3); + r.contain.add(n); + for(int i=1;i<=n;i++) + { + int tid = in.readInt(); + double lot = in.readDouble(); + double lat = in.readDouble(); + r.contain.add(tid); + r.contain.add(lot); + r.contain.add(lat); + } + break; + } + return r; + }catch(IOException e){ + throw e; + } + } + public void closeSocket(){ + try{ + client.close(); + }catch(IOException e){ + e.printStackTrace(); + } + } + +} |