//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的更多相关文章

  1. php创建udp Server

    <?php//服务器信息$server = 'udp://127.0.0.1:7002';//----UDP Server$msgEof = "\n";$socket = s ...

  2. UDP client,UDP server, TCP server, TCP client

    UDP server import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocke ...

  3. TCP/UDP server

    Simple: Sample TCP/UDP server https://msdn.microsoft.com/en-us/library/aa231754(v=vs.60).aspx Simple ...

  4. uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

    眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clien ...

  5. 使用epoll实现一个udp server && client

    udp server #!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select import Queue #创建s ...

  6. TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。

    一.TCP通信测试: 1)   创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...

  7. epoll简介 与 UDP server的实现

    Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系 ...

  8. UDP server Code

    Code Example: The following programs demonstrate the use of getaddrinfo(), gai_strerror(), freeaddri ...

  9. UDP server & client

    Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...

随机推荐

  1. DevExpress.XtraGrid.view.gridview 属性说明

    本文摘自: http://www.cnblogs.com/-ShiL/archive/2012/06/08/ShiL201206081335.html (一)双击展开,收缩字表 ExpandedChi ...

  2. GreenDao3.0新特性解析(配置、注解、加密)

    Greendao3.0release与7月6日发布,其中最主要的三大改变就是:1.换包名 2.实体注解 3.加密支持的优化 本文里面会遇到一些代码示例,就摘了官方文档和demo里的例子了,因为他们的例 ...

  3. java web 之客户关系管理系统

    这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...

  4. Android MVP 设计模式

    1.基本概念 Model    : 模型   负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等: View     : 视图    负责界面数据的展示,与用户进行交互: Presenter ...

  5. java中IO流异常处理

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  6. SVN使用_获取某版本后改动的文件列表

    本章将讲解如何通过svn命令获取某版本后改动的所有文件 一键操作,告别svn log的繁杂对比工作. 1:安装SVN命令行工具Subversion(不是TortoiseSVN) 下载Subversio ...

  7. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  8. JavaScript 事件

    事件 概念:事件是可以被 JavaScript 侦测到的行为. JavaScript 使我们有能力创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触 ...

  9. 编译安装zabbix3.2

    1.1 环境准备 系统环境准备:redhat 6.6 64位mysql-5.6.34php-5.6.28zabbix-3.2.1配置前先关闭iptables和SELINUX,避免安装过程中报错. # ...

  10. linux下创建文件与目录时默认被赋予了什么样的权限?

    当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...