MainActivity.java
4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.sunvote.udptest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class MainActivity extends AppCompatActivity {
private EditText sreverIpView;
private EditText serverPortView;
private EditText contentView;
private TextView webviewtest;
private View test;
public static String serverIp = "192.168.0.104";
public static int port ;
private String content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
sreverIpView = (EditText) findViewById(R.id.server_ip);
serverPortView = (EditText) findViewById(R.id.server_port);
contentView = (EditText)findViewById(R.id.content);
webviewtest = (TextView)findViewById(R.id.webviewtest);
test = findViewById(R.id.test);
webviewtest.setText(Html.fromHtml("<img alt=\"菁优网\" src=\"http://img.jyeoo.net/quiz/images/201410/118/38290219.png\" style=\"vertical-align:middle;FLOAT:right;\" />解:如图所示:∵在△ABC中,∠C=90°,有一点既在BC的对称轴上,又在AC的对称轴上,<br />∴由直角三角形斜边的中点到三角形三个顶点的距离相等,则该点一定是AB中点.<br />故选:D."));
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
serverIp = sreverIpView.getText().toString();
try{
port = Integer.parseInt(serverPortView.getText().toString());
}catch (Exception ex){
Toast.makeText(MainActivity.this,"端口错误",Toast.LENGTH_SHORT).show();
return;
}
content = contentView.getText().toString();
content = content.replace(" ","");
if(TextUtils.isEmpty(serverIp)){
Toast.makeText(MainActivity.this,"ip 為空",Toast.LENGTH_SHORT).show();
return;
}
if(TextUtils.isEmpty(content)){
Toast.makeText(MainActivity.this,"ip 輸入發送內容為空",Toast.LENGTH_SHORT).show();
return;
}
new Thread(){
public void run(){
byte[] datas = hexStringToBytes(content);
boolean ret = false;
try{
InetAddress address = InetAddress.getByName(serverIp);
ret = LocalUDPDataSender.getInstance().send(datas,datas.length)>=0;
}catch (Exception ex){
ret = false;
}
final boolean result = ret;
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,"send:" + result,Toast.LENGTH_SHORT).show();
}
});
}
}.start();
}
});
}
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
/**
* Convert char to byte
* @param c char
* @return byte
*/
private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}
}