The App Socket library allows for the creation of sockets between Android applications. This allows for the creation of Client-Server style applications among Android applications. Once the socket are connected, applications can share data with one another over these sockets.
Include the below dependencies in your build.gradle
project.
buildscript {
repositories {
jcenter()
maven { url "https://newtronlabs.jfrog.io/artifactory/libs-release-local"
metadataSources {
artifact()
}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath 'com.newtronlabs.android:plugin:4.0.5'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://newtronlabs.jfrog.io/artifactory/libs-release-local"
metadataSources {
artifact()
}
}
}
}
subprojects {
apply plugin: 'com.newtronlabs.android'
}
In the build.gradle
for your app.
dependencies {
compileOnly 'com.newtronlabs.appsocket:appsocket:4.0.0'
}
From the server application create a server socket and listen for clients.
// Create a server socket on port 2222
IAppServerSocket serverSocket = new AppServerSocket(2222)
// Wait for client to connect
IAppSocket clientSocket = serverSocket.accept();
// Get stream for writing to client.
OutputStream os = clientSocket.getOutputStream();
// Get stream for reading from the client
InputStram is = clientSocket.getInputStream();
In order for an Android application to communicate with server app do the following:
// This is the application id of the application that has the server socket.
String serverAppId = "com.newtronlabs.appsockserver";
// This is the port on which that app is listening on.
int port = 2222;
// Create the socket.
IAppSocket socket = new AppSocket();
// Connect to remote application.
socket.connect(context, serverAppId, port);
// Get stream for writing to the server.
OutputStream os = clientSocket.getOutputStream();
// Get stream for reading from the server
InputStram is = clientSocket.getInputStream();
A set of more complex exmaples can be found in this repo's samples folders: AsServer and AsClient.
Please support the continued development of these libraries. We host and develop these libraries for free. Any support is deeply appriciated. Thank you!
BTC Address: 39JmAfnNhaEPKz5wjQjQQj4jcv9BM11NQb
https://gist.github.com/NewtronLabs/216f45db2339e0bc638e7c14a6af9cc8
Patent Pending