android虚拟机与PC机的socket通信

android部分代码如下:

注意:在Manifest.xml中需要添加网络访问许可<uses-permission android:name="android.permission.INTERNET" />

package com.test.socket;

 

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

 

public class SocketActivity extends Activity implements OnClickListener {

    /** Called when the activity is first created. */

private TextView tv;

private Button btn, btn_exit;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        tv = (TextView)findViewById(R.id.message);

        tv.setText("Ready");

        btn = (Button)findViewById(R.id.send);

        btn.setOnClickListener(this);

        btn_exit = (Button)findViewById(R.id.exit);

        btn_exit.setOnClickListener(this);

    }

    public void onClick(View v) {

    if (v == btn) {

    tv.setText("Start");

    int port = 7100;

    try {

    Socket socket = new Socket("10.10.15.79", port);

    OutputStream out = socket.getOutputStream();

    DataOutputStream dout = new DataOutputStream(out);

    dout.writeUTF("Jordan");

    InputStream in = socket.getInputStream();

    DataInputStream din = new DataInputStream(in);

    String str = din.readUTF();

    tv.setText(str);

    in.close();

    out.close();

    socket.close();

    }catch (UnknownHostException e) {

// TODO: handle exception

    tv.setText("UnknownHostError");

}catch (IOException e) {

// TODO: handle exception

tv.setText("IOError");

}

    } else if (v == btn_exit) {

    finish();

    }

    }

}

PC机端使用Java作为服务器,创建ServerSocket,之后等待客户端连接。具体代码如下:

import java.net.*;

import java.io.*;

 

public class SocketAppServer {

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

ServerSocket ss = null;

int port = 7100;

String hello="From Server:Hello World!";

//create ServerSocket

try {

ss = new ServerSocket(port);

}catch (IOException e) {

// TODO: handle exception

System.out.println(e);

System.exit(1);

}

//accept client connection

while(true) {

try {

System.out.println("Waiting for connection on port="+port);

Socket cs = ss.accept();

InputStream input = cs.getInputStream();

DataInputStream din = new DataInputStream(input);

String name = din.readUTF();

OutputStream output = cs.getOutputStream();

DataOutputStream dout = new DataOutputStream(output);

dout.writeUTF(hello+"Your name:"+name);

System.out.println("Connection OK port="+port);

System.out.println("=========================");

din.close();

output.close();

cs.close();

}catch (IOException e) {

// TODO: handle exception

System.out.println(e);

}

}

}

}

你可能感兴趣的:(android,虚拟机,socket,网络通信)