`

android tcp server

 
阅读更多

(1)BYTE TO STRING

(2)STRING TO BYTE

(3)THREAD

(4)HANDLE

 

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

相关推荐

    android TCP server 和TCP client通信源码

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

    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服务器代码(适用于AndroidStudio版本)

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

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

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

    安卓TCP client和TCP sever 开发示例

    本示例主要涉及如何在Android中实现TCP客户端(TCP client)和服务器(TCP server)的开发,这对于创建需要进行网络交互的应用来说至关重要。 TCP客户端是发起连接请求的一方,它需要连接到服务器并发送或接收数据...

    androidstudio TCP客户端程序学习入门

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

    安卓实现TCP通信demo含Java服务端客户端实现

    - 可能包含一个`TcpServer`类,用于启动和停止服务器,以及处理客户端连接。 - 另外,可能有一个`TcpClient`类,用于连接服务器并发送/接收数据。 7. **实际应用**: - Android应用中使用TCP通信的场景可能包括...

    AndroidTCP Client and Server

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

    Android TCP/IP server client demo

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

    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/IP Server

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

    Android TCP Client demo

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

    android TCP通讯源码

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

    Android TCP_Client

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

    Android TCP服务器源码

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

    tcpServer.zip

    Android 端的TCP Server应用,含简单的数据收发,代码从网上抄的,将工程上传方便使用。

    Android Native TCP C语言实现Server创建和Client连接

    本篇文章将深入探讨如何使用C语言在Android Native层实现TCP服务器(Server)的创建以及客户端(Client)的连接。我们将主要关注以下几个方面: 1. **Android NDK与JNI** Android Native Development Kit (NDK) 是...

    TCP.rar_android_android Python_python TCP_tcp_tcp server client

    在这个场景中,我们探讨的是如何使用Python和Android实现TCP(Transmission Control Protocol)通信。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,广泛应用于互联网上的各种服务,如HTTP、FTP等。 ...

    基于ardunio的TCP server的创建.zip

    【标题】:“基于ardunio的TCP server的创建” 在物联网(IoT)领域,Arduino是一种流行的开源电子原型平台,广泛用于制作各种创意项目。在这个主题中,我们聚焦于如何利用Arduino来创建一个TCP服务器,这允许Arduino...

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

    AndroidServer基于 Kotlin + Netty 开发,为 Android App 提供 Server 的功能,包括 Http、TCP、WebSocket 服务Feature:支持 Http、TCP、WebSocket 服务支持 Rest 风格的 API、文件上传、下载支持加载静态网页Http ...

Global site tag (gtag.js) - Google Analytics