0

私は自分の `public class ActivitymainActivity extends Activity {に簡単なコマンドを送信したいAndroidアプリケーションを持っています

private TextView textview;
private Button button;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitymain);

    textview=(TextView) findViewById(R.id.EmailCount);
    button=(Button) findViewById(R.id.button1);
    textview.setText("Going in");
    try{
        Socket socket = new Socket("192.168.1.66", 2727);   

        OutputStream out = socket.getOutputStream();       
        PrintWriter output = new PrintWriter(out);         

        textview.setText("Sending Data to PC");         
        output.println("Hello from Android");
        output.flush();
        output.close();
        textview.setText("Data sent to PC");            

        socket.close();                                    
        textview.setText("Socket closed"); 
    }
    catch(Exception e){System.out.print(e+"shacso");}

    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            textview.setText("Trying to send");
             try{
                    Socket socket = new Socket("192.168.1.66", 2727);   

                    OutputStream out = socket.getOutputStream();       
                    PrintWriter output = new PrintWriter(out);         

                    textview.setText("Sending Data to PC");         
                    output.println("Checking Email now:D");
                    output.flush();
                    output.close();
                    textview.setText("Data sent to PC");            

                    socket.close();                                    
                    textview.setText("Socket closed");                  }
                catch(Exception e){System.out.print(e+"");}

        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activitymain, menu);
    return true;
}

} `

そして、これは私のマニフェストです:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.emailclient"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".ActivitymainActivity"
        android:label="@string/title_activity_activitymain" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

ただし、サーバーで何も受信できません。「UDP TCPサーバー」と呼ばれるプレイストアからアプリケーションをダウンロードし、指定されたIPとポートにパケットを送信し、送信されたデータをサーバーに取得できました。私のコードに何か問題がありますか?

コードの説明: データを送信するアプリ ランチとボタンがクリックされたとき

ありがとう :)

4

2 に答える 2

2

すべてのネットワーク通信は別のスレッドで行う必要があります! メイン UI スレッドではありません。それがあなたのコードが機能しない理由です。

于 2013-11-23T03:51:54.967 に答える
0

You say:

I am not able to receive anything on the server.

Looking at your code it seems that your not actually attempting to READ the response from the server. After sending the message you then need to access the socket InputStream to read the response from the server.

于 2013-03-29T23:25:29.473 に答える