From 6400b18210587cb25b475bc2d3979b9a6da5eda4 Mon Sep 17 00:00:00 2001 From: Goblin911 Date: Mon, 26 Aug 2013 09:15:50 +0800 Subject: init --- .../src/com/macaroon/piztor/SocketClient.java | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 client/Piztor/src/com/macaroon/piztor/SocketClient.java (limited to 'client/Piztor/src/com/macaroon/piztor/SocketClient.java') 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 tmpv = new Vector(); + 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(); + } + } + +} -- cgit v1.2.3