public class SocketClient
{
public boolean mClientFlag = false;
private static Socket client;


public SocketClient()
{
Log.d("WineStock", "WineStock SocketClient()");
client = new Socket();
}


public SocketClient(String HostName, int iPort)
{
client=new Socket();
SocketAddress socketAddress = new InetSocketAddress(HostName, iPort);
try
{
Log.d("WineStock", "WineStock SocketClient connect");
client.connect(socketAddress, 3000);
}
catch (IOException e) {
// TODO Auto-generated catch block
Log.d("WineStock", "WineStock SocketClient IOException");

} catch (IllegalArgumentException e1) {
// TODO: handle exception
Log.d("WineStock", "WineStock SocketClient IllegalArgumentException ");

}

return ;
}

public boolean SocketConnect(String HostName, int iPort)
{

SocketAddress socketAddress = new InetSocketAddress(HostName, iPort);
try
{
Log.d("WineStock", "WineStock SocketConnect connect ");

client.connect(socketAddress, 3000);
}
catch (IOException e) {
// TODO Auto-generated catch block
Log.d("WineStock", "WineStock SocketConnect IOException ");

} catch (IllegalArgumentException e1) {
// TODO: handle exception
Log.d("WineStock", "WineStock SocketConnect IllegalArgumentException ");

}

return true;
}

public void SocketClose()
{
try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("WineStock", "socket close error"+e.getMessage());
}

}

// 建立连接
public static boolean SClient(SocketSendModel SendModel) throws UnknownHostException, IOException
{
boolean bRet = false;
try
{
if(client.isConnected())

{

//发送请求

sendMessage(SendModel);
bRet = true;
}
}
catch (UnknownHostException e)
{
Log.d("WineStock", "socket SClienterror"+e.getMessage());
}
catch (IOException e1)
{
Log.d("WineStock", "socket SClienterror"+e.getMessage());
}

return bRet;


}
// 发送请求
private static void sendMessage(SocketSendModel model) throws IOException
{
//boolean bRet = false;
try
{
PrintWriter out = new PrintWriter(client.getOutputStream());
out.print(objToJsonString(model).replace("\n", " "));
out.flush();
//bRet = true;
}
catch (IOException e)
{

}

return;
}


// 接收服务器数据
public static String readMessage() throws IOException
{
String str = "";
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
str = br.readLine().replace("{", "").replace("}", "").replace("\"", "");
}
catch ( IOException e)
{

}

return str;

}
// 将Java Object对象转换为Json对象
private static String objToJsonString(Object obj) {
// 初始化返回值
String json = "str_empty";
if (obj == null) {
return json;
}
StringBuilder buff = new StringBuilder();
Field fields[] = obj.getClass().getFields();
try {
buff.append("[");
buff.append("{");
int i = 0;
for (Field field : fields) {
if (i != 0) {
buff.append(",");
}
buff.append(field.getName());
buff.append(":");
buff.append("\"");
buff.append(field.get(obj) == null ? "" : field.get(obj));
buff.append("\"");
i++;
}
buff.append("}");
buff.append("]");
json = buff.toString();
} catch (Exception e) {
throw new RuntimeException("cause:" + e.toString());
}
return json;

}

}


更多相关文章

  1. [Android] Android(安卓)Tweened Animations动画使用详解二
  2. Fuel:Kotlin / Android最简单的HTTP网络库
  3. android解析二维数组对象key:value
  4. Android拒绝来电的实现--ITelephony类的反射
  5. Android手机访问web服务器(post请求)
  6. 『转』Android(安卓)Intent常见应用
  7. Android(安卓)之网络编程
  8. Android(安卓)网络请求库Retrofit简单使用
  9. Android(安卓)Binder 机制详解

随机推荐

  1. Android(安卓)Stagefright MPEG4Extracto
  2. Android(安卓)简单的网络变化监听器
  3. Android(安卓)Studio多个Module依赖同一
  4. android通过号码查询联系人姓名
  5. Android(安卓)Fastboot源码分析
  6. Android(安卓)手机相机自动对焦
  7. textview之url
  8. Android中从服务器端向客户端传数据
  9. android 实现一直震动和间歇震动
  10. Android(安卓)Q自定义开关机动画