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; ...
随机推荐
- 航旅事业群面试(li)
一.JVM 1.如何观察垃圾回收? 2.JAVA应用的JVM参数调优? 3.举例说明你所知道的JVM profile方法? 4.GC tunning实战.假如你是一个大型网站的总架构师,有次web应用 ...
- Spring+SpringMVC+Hibernate简单整合(转)
SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,下面同样做一个简单的应用实例,介绍SpringMVC的基本用法,接下来的博客也将梳理一下Str ...
- 子div设置浮动无法把父div撑开。
<div class="mainBox"> <div class="leftBox"></div> <div clas ...
- switch语句的妙用
switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...
- layer.js中layer.tips
<script src="~/Content/js/layer/layer.js"></script> layer.tips('名称不能为空', '#pro ...
- JQuery中隐藏/显示事件函数
1.$("button").click(function(){ $("p").hide(); });2.如果您的网站包含许多页面,并且您希望您的 jQuery ...
- jQuery fsBanner 手风琴
fsbanner是一款自定义功能丰富的响应式网站Banner手风琴特效jQuery插件.该手风琴特效兼容性很好,支持点击和鼠标滑过等触发事件,并且可添加标题或描述. 在线实例 默认 带标题 鼠标滑过 ...
- VBA 格式化字符串 - Format大全
VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...
- IOS 开发小技巧总结
一.添加自定义字体 1.把字体文件拖到工程中. 2.plist 文件中添加字段:<Array>Fonts provided by application</Array> 把字体 ...
- 【代码笔记】iOS-获得现在的日期
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...