Android与服务器通信的方法之一(TCP)

来源:互联网 发布:default vb 编辑:程序博客网 时间:2024/05/21 14:44

http://www.open-open.com/lib/view/open1344307965280.html


packagecom.yarin.android.Examples_08_04;  
   
importjava.io.BufferedReader;  
importjava.io.BufferedWriter;  
importjava.io.InputStreamReader;  
importjava.io.OutputStreamWriter;  
importjava.io.PrintWriter;  
importjava.net.InetAddress;  
importjava.net.Socket;  
importandroid.app.Activity;  
importandroid.os.Bundle;  
importandroid.util.Log;  
importandroid.view.View;  
importandroid.view.View.OnClickListener;  
importandroid.widget.Button;  
importandroid.widget.EditText;  
importandroid.widget.TextView;  
   
publicclass Activity01 extendsActivity  
{  
    privatefinal String        DEBUG_TAG   = "Activity01";  
        
    privateTextView    mTextView=null;  
    privateEditText    mEditText=null;  
    privateButton      mButton=null;  
       
    @Override 
    publicvoid onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
            
        mButton = (Button)findViewById(R.id.Button01);  
        mTextView=(TextView)findViewById(R.id.TextView01);  
        mEditText=(EditText)findViewById(R.id.EditText01);  
            
        //登陆  
        mButton.setOnClickListener(newOnClickListener()  
        {  
            publicvoid onClick(View v)  
            {  
                Socket socket = null;  
                String message = mEditText.getText().toString() + "\r\n";   
                try   
                {     
                    //创建Socket  
                    socket = newSocket("116.29.27.138",5554); //查看本机IP,每次开机都不同  
                    //socket=new Socket("192.168.1.110",50000);  
                    //向服务器发送消息  
                    PrintWriter out = newPrintWriter( newBufferedWriter( newOutputStreamWriter(socket.getOutputStream())),true);        
                    out.println(message);   
                        
                    //接收来自服务器的消息  
                    BufferedReader br = newBufferedReader(newInputStreamReader(socket.getInputStream()));   
                    String msg = br.readLine();   
                        
                    if( msg != null)  
                    {  
                        mTextView.setText(msg);  
                    }  
                    else 
                    {  
                        mTextView.setText("数据错误!");  
                    }  
                    //关闭流  
                    out.close();  
                    br.close();  
                    //关闭Socket  
                    socket.close();   
                }  
                catch(Exception e)   
                {  
                    // TODO: handle exception  
                    Log.e(DEBUG_TAG, e.toString());  
                }  
            }  
        });  
    }  
 
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.net.InetAddress;
importjava.net.Socket;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
 
publicclass Activity01 extendsActivity
{
privatefinal String DEBUG_TAG = "Activity01";
 
privateTextView mTextView=null;
privateEditText mEditText=null;
privateButton mButton=null;
  
@Override
publicvoid onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
 
mButton = (Button)findViewById(R.id.Button01);
mTextView=(TextView)findViewById(R.id.TextView01);
mEditText=(EditText)findViewById(R.id.EditText01);
 
//登陆
mButton.setOnClickListener(newOnClickListener()
{
publicvoid onClick(View v)
{
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try
{
//创建Socket
socket = newSocket("116.29.27.138",5554); //查看本机IP,每次开机都不同
//socket=new Socket("192.168.1.110",50000);
//向服务器发送消息
PrintWriter out = newPrintWriter( newBufferedWriter( newOutputStreamWriter(socket.getOutputStream())),true);     
out.println(message);
 
//接收来自服务器的消息
BufferedReader br = newBufferedReader(newInputStreamReader(socket.getInputStream()));
String msg = br.readLine();
 
if( msg != null)
{
mTextView.setText(msg);
}
else
{
mTextView.setText("数据错误!");
}
//关闭流
out.close();
br.close();
//关闭Socket
socket.close();
}
catch(Exception e)
{
// TODO: handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
}
}
 
服务器端代码:
Java代码 
packagecom.yarin.android.Examples_08_04;  
   
importjava.io.BufferedReader;  
importjava.io.BufferedWriter;  
importjava.io.InputStreamReader;  
importjava.io.OutputStreamWriter;  
importjava.io.PrintWriter;  
importjava.net.ServerSocket;  
importjava.net.Socket;  
   
publicclass Server implementsRunnable  
{  
    publicvoid run()  
    {  
        try 
        {  
            //创建ServerSocket  
            ServerSocket serverSocket = newServerSocket(5554);  
            while(true)  
            {  
                //接受客户端请求  
                Socket client = serverSocket.accept();  
                System.out.println("accept");  
                try 
                {  
                    //接收客户端消息  
                    BufferedReader in = newBufferedReader(newInputStreamReader(client.getInputStream()));  
                    String str = in.readLine();  
                    System.out.println("read:"+ str);    
                    //向服务器发送消息  
                    PrintWriter out = newPrintWriter( newBufferedWriter( newOutputStreamWriter(client.getOutputStream())),true);        
                    out.println("server message");   
                    //关闭流  
                    out.close();  
                    in.close();  
                }  
                catch(Exception e)  
                {  
                    System.out.println(e.getMessage());  
                    e.printStackTrace();  
                }  
                finally 
                {  
                    //关闭  
                    client.close();  
                    System.out.println("close");  
                }  
            }  
        }  
        catch(Exception e)  
        {  
            System.out.println(e.getMessage());  
        }  
    }  
    //main函数,开启服务器  
    publicstatic void main(String a[])  
    {  
        Thread desktopServerThread = newThread(newServer());  
        desktopServerThread.start();  
    }  
}

0 0
原创粉丝点击