The code below results in a timeout.
It works fine on non-Android Java. What's the matter?
public static void run()
{
HelloWorldActivity.tv.setText("Trace 1");
try
{
InetAddress serverAddr;
InetAddress ias[] = InetAddress.getAllByName(Server.SERVERNAME);
serverAddr = ias[0];
Log.d("UDP", "C: Connecting...");
DatagramSocket socket = new DatagramSocket();
String strQuery="ÿÿÿÿgetservers"+" "+Server.iProtocol+" "+"'all'";
Log.d("UDP", strQuery);
byte[] buf = strQuery.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length,
serverAddr, Server.SERVERPORT);
Log.d("UDP", "C: Sending: '" + new String(buf) + "'");
socket.setSoTimeout(5000);
socket.send(packet);
Log.d("UDP", "C: Sent.");
Log.d("UDP", "C: Done.");
byte[] buffer= new byte[1024*100];
DatagramPacket receivePacket
= new DatagramPacket(buffer,
buffer.length);
socket.receive(receivePacket);
HelloWorldActivity.tv.setText("TTT");
String x = new String(receivePacket.getData());
Log.d("UDP", "C: Received: '" + x + "'");
HelloWorldActivity.tv.setText(x);
} catch (Exception e) {
HelloWorldActivity.tv.setText(e.getMessage());
Log.e("UDP", "C: Error", e);
}
}
public class Server
{
public static String SERVERNAME="dpmaster.deathmask.net";
public static String SERVERIP="192.246.40.56";
public static int SERVERPORT=27950;
public static int iProtocol=71;
}
Android manifest:
<?xml version="1.0" encoding="utf-8"?>
<use-permission id="android.permission.READ_CONTACTS" />
<use-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_CELL_ID" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:icon="@drawable/icon"
android:label="AAA New Application"
>
<activity android:name="HelloWorldActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
source
share