UDP Server
//UDP服务器端程序,可以接受广播,不可接受多播,多播需要join播地址
@Override
public void run() {
while (true) {
try {
DatagramSocket server = new DatagramSocket(5050);
byte[] recvBuf = new byte[1024];
DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length);
while (true) {
//接收数据
server.receive(recvPacket);
String recvStr = new String(recvPacket.getData(), 0, recvPacket.getLength());
iListenerResutlt.onRecieve(recvStr);
//回复数据
int port = recvPacket.getPort();
InetAddress addr = recvPacket.getAddress();
/// 保存ip发送01z使用
BApplication.getInstance().setLastSer(addr.getHostAddress());
BApplication.getInstance().setPort(port);
String sendStr =recvStr;
byte[] sendBuf;
sendBuf = sendStr.getBytes("gbk");
DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length, addr, port);
server.send(sendPacket);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//关机
public void shutdownCode() {
String cmdStr="reboot -p"+"\n";
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream dos = new DataOutputStream(process.getOutputStream());
dos.write(cmdStr.getBytes());
dos.flush();
dos.close();
} catch (Exception exception) {
exception.printStackTrace();
}
}
//开机
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<action android:name="android.intent.action.BOOT_COMPLETED"/>
//TCP Client UDP Client
private void sendData() {
String str = BApplication.getInstance().getLastSer();
int port = BApplication.getInstance().getPort();
sendTcpData(str, port);
sendUdpData(str, port);
}
private void sendUdpData(final String serIP, final int port) {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
DatagramSocket dataSocket = new DatagramSocket();
byte sendDataByte[] = new byte[1024];
String sendStr = "UDP01z";
sendDataByte = sendStr.getBytes();
DatagramPacket dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,
InetAddress.getByName(serIP), port);
dataSocket.send(dataPacket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
new Thread(runnable).start();
}
private void sendTcpData(final String serIP, final int port) {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
String str = "01z";
Socket socket = new Socket(serIP, port);
OutputStream out = socket.getOutputStream();
out.write(str.getBytes()); // 发送
out.flush();
out.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
new Thread(runnable).start();
}
BApplication.java
// 获取最后一次发送指令的ip地址
public String getLastSer() {
SharedPreferences sharedPreferences = getSharedPreferences("lastserver", MODE_PRIVATE);
return sharedPreferences.getString("last", null);
}
public void setLastSer(String lastSer) {
SharedPreferences sharedPreferences = getSharedPreferences("lastserver", MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putString("last", lastSer);
editor.apply();
}
// 获取发送过来的port
public int getPort() {
SharedPreferences sharedPreferences = getSharedPreferences("lastserver", MODE_PRIVATE);
return sharedPreferences.getInt("lastport", 0);
}
public void setPort(int port) {
SharedPreferences sharedPreferences = getSharedPreferences("lastserver", MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putInt("lastport", port);
editor.apply();
}
//保持屏幕常亮
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//使用百度云播放器
BVidoView
UDP Server的更多相关文章
- php创建udp Server
<?php//服务器信息$server = 'udp://127.0.0.1:7002';//----UDP Server$msgEof = "\n";$socket = s ...
- UDP client,UDP server, TCP server, TCP client
UDP server import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocke ...
- TCP/UDP server
Simple: Sample TCP/UDP server https://msdn.microsoft.com/en-us/library/aa231754(v=vs.60).aspx Simple ...
- uip UDP server广播模式(client能够随意port,而且主动向client发送数据)
眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clien ...
- 使用epoll实现一个udp server && client
udp server #!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select import Queue #创建s ...
- TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。
一.TCP通信测试: 1) 创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...
- epoll简介 与 UDP server的实现
Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系 ...
- UDP server Code
Code Example: The following programs demonstrate the use of getaddrinfo(), gai_strerror(), freeaddri ...
- UDP server & client
Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...
随机推荐
- Yii 2.x 多主题 - 多语言 配置
语言:只要在原来模板的位置建立语言目录 多主题:要重新定义模板的根目录
- python之最强王者(3)——变量,条件、循环语句
1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...
- volatile
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的 ...
- axis2+struts拦截地址冲突问题
axis2和struts在整合过程中,struts会把axis的地址也拦截了,默认当成一个action处理, 会因为找不到action而报错: <!-- struts配置 --> < ...
- Windows编译Nginx源码
Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊 Nginx是一款轻量级的Web 服务器.反向代理服务器.邮件服务器等等集一大串荣誉于一身的大牌人物!他 ...
- css3 linear-gradient实现购物车地址选择信封效果
对于css3的渐变前端的童鞋一定不陌生,在一些电商网站会为了美化将地址选择做成信封样式(个人感觉很稀饭~),看了一下它的实现方式,大多数是以图片的形式,持着优化的心态尝试着用css3 linear-g ...
- HTML常用标签
HTML常用标签: HTML文档格式: 首先,HTML是一种超文本标签语言,它是制作网页的基础. 其次,HTML文档中至少包含基本的和成对的<html> </html>.< ...
- 使用Kotlin对ViewGroup的视图进行函数使操作
原文标题:Functional operations over Views in ViewGroup using Kotlin 原文链接:http://antonioleiva.com/functio ...
- Myeclipse开发环境下文件中出现的提示错误与解决方法:The import javax.servlet cannot be resolved?
1.开发工具:MyEclipse 2.右击项目 >> Build Path >> Add External Archives (Tomcat >> li ...
- Windows Server 2012 虚拟化实战:存储(二)
五.搭建Window Server 2012虚拟化的存储网络 前文我们讨论了Window Server 2012支持的各种与存储相关的技术,接下来我们通过实践对其中的一些技术进行检验.实际上Windo ...