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; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sendButton = (Button) this.findViewById(R.id.sendButton); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new TCPClient().start(); } }); } class TCPClient extends Thread { @Override public 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; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sendButton = (Button) findViewById(R.id.sendButton); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new UDPClient().start(); } }); } class UDPClient extends Thread { @Override public 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>
?
?
?