1

コードは次のとおりです。リモート ホスト 192.168.1.3 のポート 12345 に文字列を送信したいのですが、リモート ホストで文字列を受信できません。何が足りないか教えてください。thxところで、netcatを使用してAndroidデバイスからリモートホストに情報を送信できます。また、私も呼び出しisReachable()、リモートホストにpingできることを示しました。

try {
                socket = new DatagramSocket();

                socket.setBroadcast(false);
                DatagramPacket packet;
                String datas="adasdasdasd";
                packet = new DatagramPacket(datas.getBytes(), datas.length(),InetAddress.getByName("192.168.1.3"), 12345);

                socket.send(packet);
                System.out.println("sending");
            } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
}

そしてマニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testclientnew"
    android:versionCode="1"
    android:versionName="1.0" >

        <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.testclientnew.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
4

1 に答える 1

0

I got the answer. It's simply because I did not open the netcat correctly at the receiver side. I should use nc -ul 12345. I missed the -u option which result in my failing in receiving UDP packets.

于 2013-04-28T18:26:59.333 に答える