首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android学习札记(二十二)

2012-08-03 
Android学习笔记(二十二)Socket编程?TCPServerimport java.io.InputStreamimport java.net.ServerSocket

Android学习笔记(二十二)

Socket编程

?

TCPServer

import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {public static void main(String args[]) {try {while (true) {ServerSocket ss = new ServerSocket(6666);Socket sk = ss.accept();InputStream inStream = sk.getInputStream();int length = 0;byte[] buffer = new byte[1024];while ((length = inStream.read(buffer)) != -1) {System.out.print(new String(buffer, 0, length));}sk.close();}} catch (Exception e) {e.printStackTrace();}}}

?

TCPClientActivity

package org.wp.activity;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class TCPClientActivity extends Activity {private Button sendButton;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);sendButton = (Button) this.findViewById(R.id.sendButton);sendButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new TCPClient().start();}});}class TCPClient extends Thread {@Overridepublic void run() {try {Socket sk = new Socket("192.168.1.105", 6666);InputStream inStream = TCPClientActivity.this.getClassLoader().getResourceAsStream("workers.xml");OutputStream outStream = sk.getOutputStream();byte[] buffer = new byte[1024];int length = inStream.read(buffer);while (length != -1) {outStream.write(buffer, 0, length);length = inStream.read(buffer);}} catch (Exception e) {e.printStackTrace();}}}}

?

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="org.wp.activity" android:versionCode="1" android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".TCPClientActivity" 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><!-- Allows applications to open network sockets --><uses-permission android:name="android.permission.INTERNET" /><uses-sdk android:minSdkVersion="4" /></manifest>

?

?

UDPServer

import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPServer {public static void main(String args[]) {try {DatagramSocket ds = new DatagramSocket(6666);byte[] buffer = new byte[1024];DatagramPacket dp = new DatagramPacket(buffer, buffer.length);ds.receive(dp);String result = new String(dp.getData(), dp.getOffset(),dp.getLength());System.out.println(result);} catch (Exception e) {e.printStackTrace();}}}

?

UDPClientActivity

package org.wp.activity;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class UDPClientActivity extends Activity {private Button sendButton;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);sendButton = (Button) findViewById(R.id.sendButton);sendButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new UDPClient().start();}});}class UDPClient extends Thread {@Overridepublic void run() {try {InputStream inStream = UDPClientActivity.class.getClassLoader().getResourceAsStream("workers.xml");BufferedReader br = new BufferedReader(new InputStreamReader(inStream));StringBuilder sb = new StringBuilder();String str = null;while ((str = br.readLine()) != null) {sb.append(str + "\n");}byte[] buffer = sb.toString().getBytes();DatagramSocket ds = new DatagramSocket(8888);InetAddress inetAddress = InetAddress.getByName("192.168.1.105");DatagramPacket dp = new DatagramPacket(buffer, buffer.length,inetAddress, 6666);ds.send(dp);} catch (Exception e) {e.printStackTrace();}}}}

?

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="org.wp.activity" android:versionCode="1" android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".UDPClientActivity" 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><!-- Allows applications to open network sockets --><uses-permission android:name="android.permission.INTERNET" /><uses-sdk android:minSdkVersion="4" /></manifest>

?

?

?

热点排行