您的位置:首页 > 移动开发 > Android开发

Android之LocalSocket和LocalServerSocket的使用

2016-06-13 10:26 696 查看
前言:

在分析Android视频直播的源码时,碰到了LocalSocket和LocalServerSocket,于是在这里做个小结

在Android Developer中,关于LocalSocket和LocalServerSocket的解释比较少,个人总结一下,

在所看的代码中,其所起的作用吧!LocalSocket并不于Socket相同,LocalSocket个人总结的

作用是:可以实现在同一个应用的多个线程之间或者多个Activity之间进行数据的传递

代码示例如下:

package com.example.administrator.testjava;

import android.net.LocalServerSocket;
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class TestLocalSocketActivity extends AppCompatActivity {

final static String SOCKET_ADDRESS = "LocalSocketAddress";
LocalSocket localSocketSender,localSocketReceiver;
LocalServerSocket localServerSocket;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_local_socket);
try {
localServerSocket = new LocalServerSocket(SOCKET_ADDRESS);
localSocketSender = new LocalSocket();
localSocketSender.connect(new LocalSocketAddress(SOCKET_ADDRESS));
localSocketReceiver = localServerSocket.accept();
send();
receiver();
} catch (IOException e) {
e.printStackTrace();
}
}

public void send(){
new Thread(){
@Override
public void run() {
try {
OutputStream outputStream = localSocketSender.getOutputStream();
outputStream.write(20);
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}

public void receiver(){
new Thread(){
@Override
public void run() {
try {
InputStream inputStream = localSocketReceiver.getInputStream();
int ret = inputStream.read();
Log.e("ret","" + ret);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}


运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: