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;
}
}
分享到:
相关推荐
Android通过socket套接字实现网络连接,通过ip地址和ip端口实现访问服务器,从而实现客户端和服务器的连接,然后实现两者数据的互连
Android安卓源码-串口&Socket通讯类源代码(5例),仅供开发及学习设计参考。
实现android与PC机双向通信 socket类
在JAVA编程中, 包来开发socket程序,下面列出所有常用的类,并简单介绍。再此说明一下:Socket仅仅是对TCP、UDP网络接口的封装,不涉及上层协议。 .Socket 客户端连接使用的TCP socket .DatagramSocket ...
则需把ServerSocketUi类中的wifi_ip;强制改为作为服务器端的ip;无需点击“先去管理服务”,即可“前去会话” 补充:作为服务器端,你可以直接获取本机的服务器ip; 作为客户端(别人连接的时候),在前去会话页面...
上一个资源传了自己写的fins基础类,这个方法则是实现在android中对fins的调用、参数的封装、转化,对返回值的处理和解析
android在wifi下手机与电脑的socket通信.rar android多线程断点下载.rar Android手机一键Root原理分析.zip Android手机的VoIP客户端 Sipdroid.rar Android有未接来电后处理(判断未接来电).rar Android模仿乐淘的应用...
比较完整的java TCP套件字通信实现demo,类的封装比较好,可以很方便接入到自己的项目中。
Borqs 播思通讯 联盟目的 将会支持 Google 可能发布的手机操作系统或者应用软件,共同开发名为 Android 的开放源代码的移动 系 统。 谷歌早在 2002 年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业...
通讯类app聊天时用到,udp传输方式。区别于tvp.此方式对服务器压力小
基于socket通讯的文件续传!.rar 基于股票的一个Android应用(内含源码) .rar 多点缩放字体DEMO .rar 多种控件多种实现方式Demo.rar 多级PopupWindow的小demo.zip 带手势划动功能的日历源码.rar 抖动窗口.rar 换肤....
实验三 基于Android的聊天网络应用 安卓开发实验及其报告(基于Android的聊天网络应用) 懂你所懂,有你所求,这是安卓实验报告,...2、了解及掌握Android+Socket即时通讯应用技术。 3、对安卓开发流程有深入的了解。
易安卓E4A多线程大数据网络通讯TCP b1.4 支持大数据文件、图片、直接发送,支持双向,无需要用户分包组包,模块库自动智能处理,目前此模块是E4A唯一最强大通讯模块,也是安卓,JAVA中最强大通讯模块之一!
Android平台有三种网络接口可以使用,他们分别是:java.net.*(标准Java接口)、Org.apache接口和Android.net.*(Android网络接口)。...这些在Java网络编程中均有涉及,我们看一个简单的socket编程,实现服务器回发客
访问硬件的API库函数通讯接口 安卓android课程设计报告全文共5页,当前为第3页。HTTP 协议:有多种接口可以调用你可以用Java类库封装的HttpConnection 或者用Apach的开源项目的 HttpGet 或者HttpPost ,服务器端 ...
Rild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这种方式。RIL(RadioInterfaceLayer)Android给出了一个ril实现框架。由于Android开发者使用的Modem是不一样的...
首先创建线程 实际上就是创建BluetoothChatService() (蓝牙聊天服务类) 这个时候把handler 传过去 这样就可以操作UI 界面了,在线程中不断轮询读取蓝牙消息,当主界面点击发送按钮时 调用BluetoothChatService 的...
4 Sokcet:就是服务器端不断监听双方约定好的端口号,客户端通过服务器IP去请求 连接,连接成功后,得到Socket的输入输出流,直接操作即可。 4) 系统功能需求 天气信息显示和获取 功能描述:需有一个显示天气情况的...
即时通讯IM系统(H5+安卓+IOS...getWanWork作socket服务(socket 数据交互方式是二进制数据格式)。 redis缓存,特定模块用sqllite缓存模块数据。 mysql、mongodb 数据库。 JWT进行用户验证。 使用 http 进行发送文件