您的位置:首页 > 理论基础 > 计算机网络

Android下使用Socket连接网络电脑

2011-04-19 16:31 453 查看
既然是使用SOCKET连接网络上的电脑,就分为两部分



其一,Android上面的Client

其二,PC上的Server



Android上面的实现代码如下



package Hello.MySocket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MySocket extends Activity {
	private final String DEBUG_TAG="lengfeng";
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Log.v("lengfeng","Android Start Connect");
        
				Socket socket=null;
				String mesg="my name is log /r/n";
				try {
					socket=new Socket("10.0.2.2",54321);
					//向服务器发送信息
					PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
					out.println(mesg);
					
					//接受服务器的信息
					BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
					String mstr=br.readLine();
					if(mstr!=null)
					{
						Log.e(DEBUG_TAG,mesg);
					}else
					{
						Log.e(DEBUG_TAG,"数据错误");
					}
					out.close();
					br.close();
					socket.close();
				} catch (UnknownHostException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}catch(Exception e)
				{
					Log.e(DEBUG_TAG,e.toString());
				}
    }
}




PC上面的Server 创建一个java的项目



import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
	
public class MyJavaServer {
	/**
	 * @param args
	 */
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("MyJavaServer Start Runing/n");
		
		try {
			ServerSocket serverSocket=new ServerSocket(54321);
			while(true)
			{
				System.out.println("接收用户连接:");
				//接受客户端请求
				Socket client=serverSocket.accept();
				System.out.println("accept:");
				try
				{
					//接受客户端信息
					BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
					String str=in.readLine();
					System.out.println("read:"+str);
					//向服务器发送消息
					PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
					out.println("Server Message:"+str);
					in.close();
					out.close();
				}catch(Exception ex)
				{
					System.out.println(ex.getMessage());
					ex.printStackTrace();
				}
				finally
				{
					client.close();
					System.out.println("close");
				}
			}
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
	}
	
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: