Androidのソケット通信を書き込もうとすると、ピットが発生し、それを記録します。
1、接続を確立することはできません。
原因:ネットワークは、アクセス権の要求を追加しませんでした。
ソリューション:には"AndroidMainfest.xml"を追加し、<-permissionが使用するアンドロイド:名= "android.permission.INTERNETあなたandroid.permission.ACCESS_NETWORK_STATEの" />
図2に示すように、接続が正常に確立された情報を受信するが、情報は、バック示唆LogCat異常をフラッシュ直接送信された後:android.os.NetworkOnMainThreadException
理由:Baiduのアンドロイド7の後のバージョンに存在することが判明した円、中には、ソケットは、メインスレッドに送信書き込むことができない、つまり、厳格な審査のメインスレッド上のTCPソケットに書き込みます。
解決策:新しいスレッドを送信します。
3.フラッシュバック、まだ、新しい情報が送信されているスレッド
理由:あなたは新しいスレッドで新しい出力ストリームを必要とします
次のようにタグが正常に送信します
(Runnableを新新(){新しい新しいスレッド @Override 公共ボイドRUN(){ 試み{ //書き込み出力ストリームとラップ関心を高めるために、UTF-8を指定した編集ボックスタイプを送信する 文字列STR =「たTestStringを」; IF(ソケットヌル==)リターン; BufferedWriterの、OutputStreamのBufferedWriterの、新しい新=(新新のOutputStreamWriter(Socket.getOutputStream())); OutputStream.write(STR); サーバに送信//出力ストリーム outputStream.flush(); e.printStackTrace(); }キャッチ(にUnsupportedEncodingException E){ // TODO自動生成されたcatchブロック }キャッチ(IOExceptionを電子){ // TODO自動生成キャッチブロック e.printStackTrace(); } } }))(始めます。