1.实现服务器
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class myService {
public myService() {
try {
//ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状态。30000是端口号
ServerSocket s=new ServerSocket(30000);
//永真循环,使服务器随时接受客户端请求
while(true){
//获取客户端套接字
//如果接收到一个客户端Socket的连接请求,该方法将返回一个与客户端Socket对应的Socket
Socket so=s.accept();
//获得输入流
OutputStream i=so.getOutputStream();
String msg="hello!";
//写字符串
i.write(msg.getBytes());
//关闭输入流
i.close();
//关闭客户端连接
so.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
new myService();
}
}
2.实现客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView t;
private static String s;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t=(TextView)this.findViewById(R.id.txt);
//需要建立子线程,有关网络的操作不能在主线程上运行
new Thread(){
public void run(){
Socket so;
try {
//用自己电脑IP地址,与端口号建立客户端Socket
so = new Socket("222.201.165.95",30000);
//应用Socket 创建 BufferedReader 对象 , 用于接收Socket Stream 中的数据
BufferedReader br = new BufferedReader(new InputStreamReader(so.getInputStream()));
s=br.readLine();
Log.v("re",s);
t.setText(s);
br.close();
so.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
3.必须在manifest文件声明
运行时,先运行服务端程序,再运行客户端程序。