`

2013-08-09 android tcp server

 
阅读更多

永久链接: http://liuzongming1988.iteye.com/blog/1922747

 

(1)BYTE TO STRING

(2)STRING TO BYTE

(3)THREAD

(4)HANDLE

 

  1. packagecom.FJICC.lzm;
  2. importjava.util.ArrayList;
  3. importjava.util.Enumeration;
  4. importjava.io.BufferedReader;
  5. importjava.io.IOException;
  6. importjava.io.InputStream;
  7. importjava.io.InputStreamReader;
  8. importjava.io.OutputStream;
  9. importjava.net.InetAddress;
  10. importjava.net.NetworkInterface;
  11. importjava.net.Socket;
  12. importjava.net.ServerSocket;
  13. importandroid.app.Activity;
  14. importandroid.app.AlertDialog;
  15. importandroid.app.Dialog;
  16. importandroid.content.Context;
  17. importandroid.content.DialogInterface;
  18. importandroid.content.Intent;
  19. importandroid.os.Bundle;
  20. importandroid.os.Handler;
  21. importandroid.os.Message;
  22. importandroid.view.View;
  23. importandroid.widget.Button;
  24. importandroid.widget.EditText;
  25. importandroid.widget.TextView;
  26. publicclasstcp_serverextendsActivity{
  27. privateButtonserverStart_btn;
  28. privateButtonserverStop_btn;
  29. privateTextViewreceivedata_tv;
  30. privateButtonsetport_btn;
  31. privateEditTextsenddata_et;
  32. privateButtonsend_btn;
  33. publicintPORT=8080;
  34. publicHandlermHandler;
  35. protectedstaticfinalintGUINOTIFIER=0x1234;
  36. @Override
  37. publicvoidonBackPressed(){
  38. //TODOAuto-generatedmethodstub
  39. super.onBackPressed();
  40. Intenti=newIntent();
  41. i.setClass(tcp_server.this,MainActivity.class);
  42. startActivity(i);
  43. finish();
  44. }
  45. @Override
  46. protectedvoidonCreate(BundlesavedInstanceState){
  47. //TODOAuto-generatedmethodstub
  48. super.onCreate(savedInstanceState);
  49. setContentView(R.layout.tcpserver_main);
  50. serverStart_btn=(Button)findViewById(R.id.btnStart);
  51. serverStop_btn=(Button)findViewById(R.id.btnStop);
  52. setport_btn=(Button)findViewById(R.id.btnSet);
  53. send_btn=(Button)findViewById(R.id.btnSend);
  54. senddata_et=(EditText)findViewById(R.id.et_send);
  55. receivedata_tv=(TextView)findViewById(R.id.tv_receive);
  56. serverStart_btn.setOnClickListener(newButton.OnClickListener(){
  57. @Override
  58. publicvoidonClick(Viewv){
  59. //TODOAuto-generatedmethodstub
  60. serverStart_btn.setEnabled(false);
  61. setport_btn.setEnabled(false);
  62. serverStop_btn.setEnabled(true);
  63. newThread()
  64. {
  65. @Override
  66. publicvoidrun(){
  67. //TODOAuto-generatedmethodstub
  68. super.run();
  69. ServerSocketserverSocket=null;
  70. try{
  71. //创建ServerSocket对象监听PORT端口
  72. serverSocket=newServerSocket(PORT);
  73. //接收tcp连接返回socket对象
  74. Socketsocket=serverSocket.accept();
  75. //获得输入流
  76. InputStreaminputStream=socket.getInputStream();
  77. ///////////////////////////////////////////////////////////////////////////////////////
  78. //获得输出流
  79. OutputStreamoutputStream=socket.getOutputStream();
  80. byte[]byteBuffer=newbyte[1024];
  81. inttemp=0;
  82. Strings;
  83. //读取接收到的数据
  84. while((temp=inputStream.read(byteBuffer))!=-1)
  85. {
  86. outputStream.write(byteBuffer,0,temp);
  87. //将byte转为string
  88. //String(byte[],int,int)使用平台的缺省字符编码方式转换指定的字节子数组生成一新的String
  89. s=newString(byteBuffer,0,temp);
  90. //将string转byte
  91. //byte[]bs=str.getBytes();
  92. //定义一个message的变量m
  93. Messagem=newMessage();
  94. //消息的标记GUINOTIFIER在前面定义的
  95. m.what=tcp_server.GUINOTIFIER;
  96. //将要传送的数据传递给m.obj
  97. m.obj=s;
  98. //传送消息
  99. tcp_server.this.mHandler.sendMessage(m);
  100. }
  101. //System.out.println(newString(byteBuffer,0,temp));
  102. outputStream.flush();
  103. socket.close();
  104. serverSocket.close();
  105. }catch(IOExceptione){
  106. e.printStackTrace();
  107. }
  108. }
  109. }.start();
  110. }
  111. });
  112. //创建handler
  113. mHandler=newHandler(){
  114. publicvoidhandleMessage(Messagemsg){
  115. switch(msg.what){//得到Handle的通知了这个时候你可以做相应的操作
  116. casetcp_server.GUINOTIFIER://tcp_server是Activity的类名
  117. //清空textView
  118. receivedata_tv.setText("");
  119. //设置textView显示内容
  120. receivedata_tv.setText(msg.obj.toString());
  121. break;
  122. }
  123. super.handleMessage(msg);
  124. }
  125. };
  126. //结束TCP服务器
  127. serverStop_btn.setOnClickListener(newButton.OnClickListener(){
  128. @Override
  129. publicvoidonClick(Viewv){
  130. serverStart_btn.setEnabled(true);
  131. setport_btn.setEnabled(true);
  132. serverStop_btn.setEnabled(false);
  133. Intenti=newIntent();
  134. i.setClass(tcp_server.this,MainActivity.class);
  135. startActivity(i);
  136. finish();
  137. }});
  138. }
  139. }
  140. tcpserver_main.xml
  141. <?xmlversion="1.0"encoding="UTF-8"?>
  142. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  143. android:layout_width="fill_parent"
  144. android:layout_height="fill_parent"
  145. android:orientation="vertical">
  146. <LinearLayout
  147. android:layout_width="wrap_content"
  148. android:layout_height="wrap_content"
  149. android:layout_gravity="center_horizontal"
  150. android:orientation="horizontal">
  151. <Button
  152. android:id="@+id/btnStart"
  153. style="?android:attr/buttonStyleSmall"
  154. android:layout_width="wrap_content"
  155. android:layout_height="wrap_content"
  156. android:text="开启服务"/>
  157. <Button
  158. android:id="@+id/btnStop"
  159. style="?android:attr/buttonStyleSmall"
  160. android:layout_width="wrap_content"
  161. android:layout_height="wrap_content"
  162. android:text="关闭服务"/>
  163. <Button
  164. android:id="@+id/btnSet"
  165. style="?android:attr/buttonStyleSmall"
  166. android:layout_width="wrap_content"
  167. android:layout_height="wrap_content"
  168. android:text="端口设置"/>
  169. </LinearLayout>
  170. <TextView
  171. android:id="@+id/tv_receive"
  172. android:layout_width="match_parent"
  173. android:layout_height="wrap_content"
  174. android:layout_weight="0.70"
  175. android:text="TextView"/>
  176. <EditText
  177. android:id="@+id/et_send"
  178. android:layout_width="match_parent"
  179. android:layout_height="wrap_content"
  180. android:ems="10"
  181. android:inputType="textMultiLine">
  182. <requestFocus/>
  183. </EditText>
  184. <Button
  185. android:id="@+id/btnSend"
  186. style="?android:attr/buttonStyleSmall"
  187. android:layout_width="148dp"
  188. android:layout_height="wrap_content"
  189. android:layout_gravity="center_horizontal"
  190. android:text="发送"/>
  191. </LinearLayout>
  192. <uses-permissionandroid:name="android.permission.INTERNET"/>
分享到:
评论

相关推荐

    TCP-Server-Client-Library.zip_android tcp server_delphi android

    本资源"TCP-Server-Client-Library.zip"提供了一个跨平台的TCP服务器和客户端库,支持包括Android、Windows(Win32和Win64)、OSX以及iOS在内的多种操作系统。 这个库特别强调了对Android TCP服务器和Delphi ...

    Android-tcp-server-and-client.zip_Android TCP_android tcp_andro

    本资源"Android-tcp-server-and-client.zip"包含了一个Android TCP客户端和服务器端的示例,可以帮助开发者理解如何在Android设备上建立TCP连接,进行数据传输。以下是关于Android TCP通信的关键知识点: 1. **TCP...

    android TCP server 和TCP client通信源码

    本示例中的"android TCP server 和TCP client通信源码"着重于实现Android设备上的服务器(Server)和客户端(Client)通过TCP协议进行通信,特别是在与串口WiFi模块ST-MW-08S交互的情况下。 首先,我们要理解TCP...

    Android TCP服务器代码(适用于AndroidStudio版本)

    Android TCP服务器精简实用代码,适用于99%的android studio环境,同时集成一个网络调试工具,方便大家调试。

    androidstudio TCP客户端程序学习入门

    在Android Studio中开发TCP客户端程序是一项基础且重要的技能,它涉及到网络编程和设备间的数据通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,广泛应用于...

    Android TCP Socket通信实例Demo源码Apk下载

    本Demo主要实现了安卓(Android)TCP 客户端(Client)和服务器(Server)Demo的Socket通讯。以及对接硬件的项目数据在十六进制&&byte&&int的转换处理。 要注意BufferedReader的readLine()方法的阻塞问题: 读取socket输入...

    Android TCP/IP server client demo

    标题"Android TCP/IP server client demo"暗示我们将创建一个Android应用程序,该程序同时具备服务器和客户端功能,以便在同一设备上进行通信测试。这对于学习和理解TCP/IP通信的基本原理非常有用。 在描述中提到,...

    AndroidTCP Client and Server

    在提供的文件名`AndroidTcp`中,我们可以推测这可能是包含了Android TCP通信示例代码的文件。这个文件可能包含了客户端和服务器端的Java源码,展示了如何在Android环境中实现TCP通信。通过分析和学习这份代码,...

    VNC-Server-6.7.1-Linux-x64-ANY.tar.gz

    在本场景中,"VNC-Server-6.7.1-Linux-x64-ANY.tar.gz" 是一个针对64位Linux系统的VNC服务器软件的压缩包。VNC Server是RealVNC公司提供的产品,它提供了跨平台的远程控制功能,让用户可以在不同的操作系统上远程...

    Android TCP Client demo

    5. **AndroidTCP项目结构**: - `MainActivity.java`:包含应用的主要逻辑,包括创建Socket,设置输入输出流,发送和接收数据的代码。 - `strings.xml`:可能包含了服务器地址和端口的字符串资源。 - `...

    android--simple-Server-and-Client.rar_Server_android_android cli

    "android--simple-Server-and-Client.rar" 提供了一个示例,让我们来深入探讨这个主题。 1. **Android 服务器搭建**: - **Socket编程**:在Android中,服务器端通常使用Java的Socket类来创建TCP连接。通过...

    Android-VNC-Server

    Android VNC Server是一款远程桌面应用程序,它允许用户通过VNC(Virtual Network Computing)协议从另一台设备访问和控制他们的Android设备。VNC是一种基于RFB(Remote Framebuffer)协议的远程桌面技术,使得用户...

    Android TCP/IP Server

    提供的文件"TCPServer"可能包含了实现上述功能的代码示例,具体实现细节需要查看源代码才能了解。通过这样的服务器,Android设备可以与其他设备进行双向通信,实现数据共享和交互,广泛应用于物联网、远程控制、游戏...

    Android TCP服务器源码

    在Android平台上实现TCP服务器源码是一项技术性强且实用的任务,尤其对于进行移动设备间的通信或者设备与服务器间的数据交互有着重要的意义。这个"Android TCP服务器源码"是一个基础的示例,它展示了如何在Android...

    Android TCP_Client

    在Android平台上开发应用程序时,有时候我们需要实现客户端与服务器之间的通信,TCP(传输控制协议)是一种常用的网络通信协议,常用于构建可靠的数据传输服务。在这个"Android TCP_Client"项目中,我们探讨了如何在...

    SOCKET-server-example.zip_android_socket

    本示例“SOCKET-server-example.zip”提供了Android Socket服务器端的源码,非常适合开发者学习如何在Android环境中实现基于Socket的通信。 一、Android Socket基础知识 1. **Socket概念**:Socket是应用层与传输...

    i-server-common.rar_android_androidsslso_httpclient_jetty_mina

    标题中的“i-server-common.rar”可能是一个包含了多种组件的库,专为Android平台设计,用于构建和优化服务器端服务。这个压缩包包含了Android SSLSO(可能是Android Secure Socket Service Object),HTTP Client,...

    android TCP通讯源码

    在Android平台上进行TCP通信是移动应用开发中常见的一项任务,特别是在需要实现设备间或者设备与服务器间实时数据传输的场景。TCP(Transmission Control Protocol)是一种面向连接、可靠的传输协议,确保了数据包的...

    AndroidServer:基于 Kotlin + Netty 开发,为 Android App 提供 Server 的功能,包括 Http、TCP、WebSocket 服务

    HttpFilter 均采用字典树(Tried Tree)实现日志隔离,开发者可以使用自己的日志库core 模块只依赖 netty-all,不依赖其他第三方库最新版本模块最新版本android-server-coreandroid-server-converter-gson下载安装...

    aarch64-linux-android-gdb.zip

    2. 连接设备:使用`adb forward`命令创建一个TCP端口转发,将设备上的调试端口映射到主机上,如`adb forward tcp:5039 tcp:5039`。 3. 启动调试:在源代码目录下,使用`aarch64-linux-android-gdb`命令启动调试器,...

Global site tag (gtag.js) - Google Analytics