ngodingdulu

Contoh Datagram UDP Listener di Android

Oleh Afa HernandesDiperbarui 4 menit baca

Contoh Datagram UDP Listener di Android - gambar 1

UDP dapat digunakan untuk mengirim informasi yang lebih mengutamakan kecepatan dibandingkan kehandalan. Dengan pemanfaatan UDP yang tepat, proses interaksi data informasi dapat berjalan dengan lebih cepat meskipun agak kurang akurat.

Walau demikian, melalui penggunaan UDP (User Data Protocol) , perangkat pengirim dan perangkat penerima pesan tidak perlu lagi melakukan validasi saat melakukan pertukaran data,. Sebab data yang saling ditransferkan tersebut telah sesuai settingan UDP.

berikut adalah penerapan UDP Datagram menggunakan android studio :

Contoh UDP 1

UDP1.java
package com.example.appmonitoring;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Debug;
import android.os.StrictMode;
import android.util.Log;
import android.widget.TextView;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class MainActivity extends AppCompatActivity {
private static final int UDP_SERVER_PORT = 2004;
private static final int MAX_UDP_DATAGRAM_LEN = 1500;
private TextView textMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
textMessage = (TextView) findViewById(R.id.txt1);
runUdpServer();
}
private void runUdpServer() {
new Thread(new Runnable() {
public void run() {
String lText;
try {
int port = 11000;
DatagramSocket dsocket = new DatagramSocket(port);
byte[] buffer = new byte[2048];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while (true) {
dsocket.receive(packet);
lText = new String(buffer, 0, packet.getLength());
Log.i("UDP packet received", lText);
textMessage.setText(lText);
packet.setLength(buffer.length);
}
} catch (Exception e) {
System.err.println(e);
e.printStackTrace();
}
}
}).start();
}
}

Contoh UDP 2

UDP2.java
package proyek.Ab;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.TextView;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.app.AlertDialog;
public class Menuutama extends AppCompatActivity {
TextView lblp1,lblp2,lblp3,lblp4,lblp5,lblp6,lblpompa,lblratarata;
private static final int UDP_SERVER_PORT = 8888;
private static final int MAX_UDP_DATAGRAM_LEN = 1500;
DatagramSocket socket;
TextView lblStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_utama);
lblStatus=(TextView)findViewById(R.id.lblStatus);
lblp1=(TextView)findViewById(R.id.lblP1);
lblp2=(TextView)findViewById(R.id.lblP2);
lblp3=(TextView)findViewById(R.id.lblP3);
lblp4=(TextView)findViewById(R.id.lblP4);
lblp5=(TextView)findViewById(R.id.lblP5);
lblp6=(TextView)findViewById(R.id.lblP6);
lblpompa=(TextView)findViewById(R.id.lblpompa);
lblratarata=(TextView)findViewById(R.id.lblratarata);
}
private MyDatagramReceiver myDatagramReceiver = null;
@Override
protected void onResume() {
super.onResume();
myDatagramReceiver = new MyDatagramReceiver();
myDatagramReceiver.start();
}
protected void onPause() {
super.onPause();
myDatagramReceiver.kill();
}
private class MyDatagramReceiver extends Thread {
private boolean bKeepRunning = true;
private String lastMessage = "";
public void run() {
String message;
byte[] lmessage = new byte[MAX_UDP_DATAGRAM_LEN];
DatagramPacket packet = new DatagramPacket(lmessage, lmessage.length);
try {
socket = new DatagramSocket(UDP_SERVER_PORT);
while(bKeepRunning) {
socket.receive(packet);
message = new String(lmessage, 0, packet.getLength());
lastMessage = message;
runOnUiThread(updateTextMessage);
}
} catch (Throwable e) {
e.printStackTrace();
}
if (socket != null) {
socket.close();
}
}
public void kill() {
bKeepRunning = false;
}
public String getLastMessage() {
return lastMessage;
}
}
private Runnable updateTextMessage = new Runnable() {
public void run() {
if (myDatagramReceiver == null) return;
String mydata=myDatagramReceiver.getLastMessage();
//lblStatus.setText(mydata);
String[]ar=mydata.split("#");//#
int jd=ar.length;
//31.57
// #15.54
// #9.29
// #1.56
// #6.65
// #20
// #ON
// #25.00
// #3750
// #
// 31.57#15.54#9.29#1.56#6.65#20#ON#25.00#3750#
// String info = String(sensor1) + "#" + String(sensor2) + "#" + String(sensor3) + "#" + String(sensor4) + "#" +
// String(sensor5) + "#" +
// String(t) + "#" + String(statusPompa) + "#" + String(rata) + "#"+ String(durasi)+ "#";
if(jd>=8){
Log.d("mydata",mydata);
String klb1=ar[0];
String klb2=ar[1];
String klb3=ar[2];
String klb4=ar[3];
String klb5=ar[4];
String suhu=ar[5];
String pompa=ar[6];
String rata=ar[7];
String durasi=ar[8];
double K1=Konver(klb1);
double K2=Konver(klb2);
double K3=Konver(klb3);
double K4=Konver(klb4);
double K5=Konver(klb5);
double avg=(K1+K2+K3+K4+K5)/5;
String s_avg=String.valueOf(Math.round(avg));
lblp1.setText(klb1+"%");
lblp2.setText(klb2+"%");
lblp3.setText(klb3+"%");
lblp4.setText(klb4+"%");
lblp5.setText(klb5+"%");
lblp6.setText(suhu+" \u2103");
lblpompa.setText(durasi);
if(rata.length()>3){
rata=rata.substring(0,3);//4
}
lblratarata.setText(rata+"%");
//80#92#83#88#79#34.7#ON
}
}
};
double Konver(String input){
double out=0;
try{
out=Double.parseDouble(input);
}
catch (Exception ee){}
return out;
}
}

Ngga ada noda ngga belajar

Bagikan:WhatsAppTelegramXFacebook
MobileSource Code

Source Code Halaman Dashboard UI Android

Pada tutorial bahasa pemrograman kali ini, saya akan membagikan sebuah tutorial tentang bagaimana caranya membuat Halaman Menu Utama yang

4 Februari 20216 mnt

Enter bukaEsc tutupHalaman pencarian