From c4d4831297d97ff2d0330858951579ad49884a96 Mon Sep 17 00:00:00 2001 From: Myth Yang Date: Fri, 23 Aug 2013 09:12:50 +0800 Subject: new --- client/Socket-demo/SocketClient.java | 107 +++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 client/Socket-demo/SocketClient.java (limited to 'client/Socket-demo/SocketClient.java') 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(); + } + } + +} -- cgit v1.2.3