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 Studio Socket通讯客户端.rar"中,提供的示例项目"**MyApplication4**"很可能是包含了上述步骤的一个实际应用。新手可以通过分析和运行这个项目,理解如何在Android环境中实现TCP Socket客户端,从而提升...
在本实例中,“Android用socket实现TCP通讯”是通过Socket类和ServerSocket类来建立服务端和客户端之间的通信桥梁。 首先,我们来看看服务端(Server)的实现。在Android应用中,由于系统安全限制,通常不直接在...
总之,Android Studio与Unity3D的Socket通讯是跨平台应用开发中的关键技术,通过理解TCP/IP协议、Socket编程以及Android和Unity3D的API,开发者可以实现高效、稳定的数据交换,为用户提供丰富的互动体验。
在Android开发中,Socket通信是实现设备间网络通信的一种常见方式。Socket分为客户端(Socket Client)和服务器端(Socket Server),它们共同构成了基于TCP/IP协议的通信模型。本篇文章将详细探讨Android环境下如何...
本主题聚焦于"Android与.NET通过Socket通讯",这是一个涉及客户端(Android)和服务器端(.NET)之间实时数据交换的技术。Socket编程是一种网络编程接口,允许两个网络应用程序通过TCP/IP协议进行通信。以下是对这个...
Android OkSocket是一款基于JavaNIO和传统Socket的一款Socket客户端整体解决方案.您可以使用它进行简单的基于Tcp协议的Socket通讯,当然,也可以进行大数据量复杂的Socket通讯,支持单工,双工通讯.
在Android开发中,Socket长连接是一种常见的通信方式,特别是在实时性要求高的应用中,如即时通讯、在线游戏等。为了保持连接的稳定性和检测网络状况,通常会采用心跳检测机制。下面将详细介绍Android中实现Socket长...
在Android中,我们可以使用Java的内置Socket类来实现这一功能。 要构建一个Android局域网Socket通信应用,我们通常会经历以下几个步骤: 1. **创建ServerSocket**:在服务端,我们需要创建一个ServerSocket实例,...
本篇将深入讲解如何在Android中实现Socket通信,包括客户端(Client)和服务器端(Server)的创建。 首先,我们来看服务器端(Socket_Server)的实现。在Android环境中,由于安全限制,通常不在主线程中进行网络...
本演示DEMO将深入解析如何在Android应用中实现UDP socket通信,帮助开发者理解和实践这一技术。 首先,我们要理解UDP的基本概念。UDP是一个无连接的协议,不保证数据的顺序、完整性和可靠性,但它的速度较快,适合...
在Android平台上,通过Socket实现两个手机之间的通信是网络编程中的常见需求。Socket是TCP/IP协议族的一部分,提供了进程间通信的能力,使得数据能在网络中可靠地传输。在本场景中,"android基于socket两个手机之间...
Socket提供了一种在网络中两台设备间建立可靠数据传输的机制,它允许Android客户端与服务器之间进行实时、双向的数据交换,从而实现即时通讯功能。在这个主题中,我们将深入探讨Android Socket编程的关键概念和技术...
在Android应用中,通常使用`java.net.Socket`类来创建客户端Socket,而服务器端则使用`ServerSocket`来监听并接受连接请求。 **1. 创建Socket连接** 在Android客户端,我们需要创建一个Socket对象并指定服务器的IP...
在Android中,我们可以使用`java.net.Socket`和`java.net.ServerSocket`类来实现Socket通信。 1. **创建ServerSocket**: - 首先,你需要创建一个`ServerSocket`实例,指定监听的端口号。例如: ```java ...
本项目“Android socket通讯QQ”提供了一个简单的实现,包括客户端和服务端两部分,旨在帮助开发者理解和实践如何在Android平台上构建基于Socket的即时通讯应用。以下是关于这个主题的详细知识点: 1. **Socket基础...
在IT行业中,Android App与PC通信是一个常见的需求,特别是在特定环境下如无WiFi网络或需要高度安全性的场景。本文将深入探讨如何通过USB连接实现Android应用与个人计算机(PC)之间的Socket通信。 首先,理解...
"android socket跨进程通讯demo"展示了如何利用Socket在Android的两个进程中进行通信,这通常涉及ServerSocket、Socket、InputStream和OutputStream的使用。同时,还可能涉及到Messenger的使用,作为另一种轻量级的...
在Java中,我们通常使用`ServerSocket`类来创建服务器端的Socket。以下是一个简单的服务器端示例: ```java ServerSocket serverSocket = new ServerSocket(8888); // 监听8888端口 Socket clientSocket = ...