本文主要简单介绍了android手机中模拟客户端和服务器端的通信,其中服务器端的开发使用了JavaSE中的知识,其主要代码如下:

android客服端源码:

        
  1. packagecom.socket.client;
  2. importjava.io.*;
  3. importjava.net.Socket;
  4. importjava.net.UnknownHostException;
  5. importandroid.app.Activity;
  6. importandroid.os.Bundle;
  7. importandroid.text.TextUtils;
  8. importandroid.view.View;
  9. importandroid.view.View.OnClickListener;
  10. importandroid.widget.Button;
  11. importandroid.widget.EditText;
  12. importandroid.widget.Toast;
  13. publicclassmainextendsActivityimplementsOnClickListener{
  14. //定义声明需要用到的UI元素
  15. privateEditTextedtmsgcontent;
  16. privateButtonbtnSend;
  17. //ip地址
  18. privateStringip="10.0.2.2";
  19. //端口号
  20. privateintport=8080;
  21. @Override
  22. publicvoidonCreate(BundlesavedInstanceState){
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.main);
  25. InitView();
  26. }
  27. privatevoidInitView(){
  28. //通过id获取ui元素对象
  29. edtmsgcontent=(EditText)findViewById(R.id.msgcontent);
  30. btnSend=(Button)findViewById(R.id.btnsend);
  31. //为btnsend设置点击事件
  32. btnSend.setOnClickListener(this);
  33. }
  34. publicvoidonClick(Viewbt){
  35. try{
  36. Stringmsg=edtmsgcontent.getText().toString();
  37. if(!TextUtils.isEmpty(msg))
  38. SendMsg(ip,port,msg);
  39. else{
  40. Toast.makeText(this,"请先输入要发送的内容",Toast.LENGTH_LONG);
  41. edtmsgcontent.requestFocus();
  42. }
  43. }catch(Exceptione){
  44. e.printStackTrace();
  45. }
  46. }
  47. publicvoidSendMsg(Stringip,intport,Stringmsg)
  48. throwsUnknownHostException,IOException{
  49. try{
  50. Socketsocket=null;
  51. socket=newSocket(ip,port);
  52. BufferedWriterwriter=newBufferedWriter(newOutputStreamWriter(
  53. socket.getOutputStream()));
  54. writer.write(msg);
  55. writer.flush();
  56. writer.close();
  57. socket.close();
  58. }catch(Exceptione){
  59. e.printStackTrace();
  60. }
  61. }
  62. }

注意要为其添加权限:

<uses-permission android:name="android.permission.INTERNET" />

服务器端源码:

        
  1. importjava.io.BufferedReader;
  2. importjava.io.InputStreamReader;
  3. importjava.net.ServerSocket;
  4. importjava.net.Socket;
  5. publicclassTCPDesktopServerimplementsRunnable{
  6. publicstaticfinalStringSERVERIP="10.0.2.2";
  7. publicstaticfinalintSERVERPORT=8080;
  8. publicvoidrun(){
  9. try{
  10. System.out.println("S:Connecting...");
  11. ServerSocketserverSocket=newServerSocket(SERVERPORT);
  12. while(true){
  13. Socketclient=serverSocket.accept();
  14. System.out.println("S:Receiving...");
  15. try{
  16. BufferedReaderin=newBufferedReader(
  17. newInputStreamReader(client.getInputStream()));
  18. Stringstr=in.readLine();
  19. System.out.println("S:Received:'"+str+"'");
  20. }catch(Exceptione){
  21. System.out.println("S:Error");
  22. e.printStackTrace();
  23. }finally{
  24. client.close();
  25. System.out.println("S:Done.");
  26. }
  27. }
  28. }catch(Exceptione){
  29. System.out.println("S:Error");
  30. e.printStackTrace();
  31. }
  32. }
  33. publicstaticvoidmain(Stringa[]){
  34. ThreaddesktopServerThread=newThread(newTCPDesktopServer());
  35. desktopServerThread.start();
  36. }
  37. }

其结果如下:在android手机端中输入内容

当点击发送时,我们可以看到在服务器端的控制台中输入所接受到的内容

更多相关文章

  1. Android学习心得(24) --- Android Handler消息机制源码分析
  2. Android实现网络图片查看器和网页源码查看器
  3. Android 2.1 源码结构分析 转载
  4. Android植物大战僵尸附源码
  5. Android Telephony —— 手机信号实时变化源码分析过程记录
  6. android 开发之电子钢琴 源码

随机推荐

  1. ViewStub的使用
  2. Android系统基础(01)简介
  3. 《Android经验分享》周刊第1期
  4. 几个Android控件属性笔记
  5. Andriod 环境配置以及第一个Android(安卓
  6. Android(安卓)平台上应用的赚钱模式
  7. 【Android(安卓)开发】: Android(安卓)消
  8. android应用安全――通信安全(android htt
  9. android main.xml分析。。一点点补充
  10. android shape的使用