diff options
author | Goblin911 <goblinliu@gmail.com> | 2013-08-26 09:15:50 +0800 |
---|---|---|
committer | Goblin911 <goblinliu@gmail.com> | 2013-08-26 09:15:50 +0800 |
commit | 6400b18210587cb25b475bc2d3979b9a6da5eda4 (patch) | |
tree | 251a4fb351c9488bf1e86db456c5b19f1e11e9b4 /client/Piztor/src/com/macaroon/piztor/SocketClient.java | |
parent | a5461ad67c54c6b7ec7b3f0d91e626b0043aec1b (diff) |
init
Diffstat (limited to 'client/Piztor/src/com/macaroon/piztor/SocketClient.java')
-rw-r--r-- | client/Piztor/src/com/macaroon/piztor/SocketClient.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/client/Piztor/src/com/macaroon/piztor/SocketClient.java b/client/Piztor/src/com/macaroon/piztor/SocketClient.java new file mode 100644 index 0000000..18c19da --- /dev/null +++ b/client/Piztor/src/com/macaroon/piztor/SocketClient.java @@ -0,0 +1,107 @@ +package com.macaroon.piztor; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.Vector; + +import android.os.Handler; +import android.os.Message; + +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 void sendMsg(Req req,Handler recall) throws IOException { + try { + DataOutputStream out = new DataOutputStream( + client.getOutputStream()); + int tmp = req.type; + out.writeByte(tmp); + switch (tmp) { + case 0: + ReqLogin rau = (ReqLogin) req; + String id = rau.user; + String pa = rau.pass; + out.writeBytes(id + "\0" + pa); + break; + case 2: + ReqUpdate rup = (ReqUpdate) req; + int tk2 = rup.token; + double slat = rup.lat; + double slot = rup.lot; + out.writeInt(tk2); + out.writeDouble(slat); + out.writeDouble(slot); + break; + case 3: + ReqLocation ras = (ReqLocation) req; + int tk3 = ras.token; + int gid = ras.gid; + out.writeInt(tk3); + out.writeInt(gid); + break; + } + out.flush(); + client.shutdownOutput(); + DataInputStream in = new DataInputStream(client.getInputStream()); + Message msg = new Message(); + int type = in.readUnsignedByte(); + switch (type) { + case 0: + int id = in.readInt(); + int status = in.readUnsignedByte(); + ResLogin rchklogin = new ResLogin(id,status); + msg.obj = rchklogin; + msg.what = 0; + recall.sendMessage(msg); + break; + case 2: + int status1 = in.readUnsignedByte(); + ResUpdate rchkupd = new ResUpdate(status1); + msg.obj = rchkupd; + msg.what = 1; + recall.sendMessage(msg); + break; + case 3: + int n = in.readInt(); + Vector<Rlocation> tmpv = new Vector<Rlocation>(); + for (int i = 1; i <= n; i++) { + int tid = in.readInt(); + double lat = in.readDouble(); + double lot = in.readDouble(); + tmpv.add(new Rlocation(tid,lat,lot)); + } + ResLocation rlocin = new ResLocation(n,tmpv); + msg.obj = rlocin; + msg.what = 3; + recall.sendMessage(msg); + break; + } + + } catch (IOException e) { + throw e; + } + } + + public void closeSocket() { + try { + client.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} |