本文主要简单介绍了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讲义学习总结---TextView
  2. Android第五个功能:文件存储到SDCard上面
  3. 预显示TextView
  4. Android(安卓)EditText默认不弹出输入法的实现方法
  5. Android(安卓)API Levels
  6. Mac下配置android环境变量
  7. Android(安卓)Studio获取SHA1值
  8. 手动root android 模拟器(emulator)详细过程
  9. Android(安卓)EditText禁止输入Emoji后设置android:maxLength失

随机推荐

  1. [译] 了解 Android(安卓)的矢量图片格式:V
  2. 如何绑定按键与程序
  3. E/ServiceManager( 54): add_service('le
  4. android使用百度地图SDK获取定位信息示例
  5. android 中FragmentActivity中模拟返回键
  6. Android(安卓)Activity生命周期回顾
  7. Android自动滚动 轮播循环的ViewPager
  8. 如何在低版本的Android(安卓)SDK中生成缩
  9. Android工程使用SVG图片
  10. window 下 利用gradle编译volley源代码