摘自书本
运行环境:ECLIPSE并且安装了android相关文件
主要内容、功能:创建一个java project服务器端 创建一个android project客户端 实现点击客户端后服务器端即可发送短信给客户端。
首先要创建一个java project作为服务器端
输入以下代码
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Samle5_1Server {
public static void main(String[] args){
ServerSocket ss=null;
Socket s=new Socket();
DataInputStream din=null;
DataOutputStream dout=null;
try{
ss=new ServerSocket(8890);
System.out.println("have listen from 8888!");
}
catch(Exception e){
System.out.println("1");
e.printStackTrace();
}
while(true){
try{
s=ss.accept();
din=new DataInputStream(s.getInputStream());
dout=new DataOutputStream(s.getOutputStream());
String msg=din.readUTF();
System.out.println("ip:"+s.getInetAddress());
System.out.println("msg:"+msg);
System.out.println("============");
dout.writeUTF("Hellow Client!");
}
catch(Exception e){
System.out.println("2");
e.printStackTrace();
}
finally{
try{
if(dout!=null)
{
dout.close();
}
if(din!=null)
{
din.close();
}
if(s!=null)
{
s.close();
}
}
catch(Exception e){
System.out.println("3");
e.printStackTrace();
}
}
}
}
}
接下来创建一个android project客户端,但是在此之前有一小关卡要打开
就是在你新创建的android project里打开AndroidMainfest.xml在其</mainfest>标记之前添加语句
<uses-permissionandroid:name="android.permission.INTERNET"/>
完成这一步后再在SRC文件夹里新建一个包 一个类(我的类命名Sample5_1)
接这再输入下列代码:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Sample5_1ServerActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
//@Override
Button button1;
EditText editText;
TextView textView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1=(Button) findViewById(R.id.button1);
editText=(EditText)findViewById(R.id.editText);
textView=(TextView)findViewById(R.id.textView);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Socket s=null;
DataOutputStream dout=null;
DataInputStream din=null;
if(v==button1){
try{
s=new Socket("192.168.12.1",8890); //这里设置的是服务端的IP:192.168.12.1 如果读者是在本纪做试验 最好输入自己的IP地址 8890是打开的端口 记得输入一个目前没有程序在使用的端口。
dout=new DataOutputStream(s.getOutputStream());
din=new DataInputStream(s.getInputStream());
dout.writeUTF(editText.getText().toString());
textView.setText("the message from the server Two"+din.readUTF());
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
if(dout!=null)
{
dout.close();
}
if(din!=null)
{
din.close();
}
if(s!=null){
s.close();
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
}
弄完这些 运行客户端以及服务端即可实验 客户端按一下按钮后 就会收到来自服务端的消息。
读者觉得有什么觉得更正的地方麻烦提出来 互相学习最重要^^