(1)BYTE TO STRING
(2)STRING TO BYTE
(3)THREAD
(4)HANDLE
- packagecom.FJICC.lzm;
- importjava.util.ArrayList;
- importjava.util.Enumeration;
- importjava.io.BufferedReader;
- importjava.io.IOException;
- importjava.io.InputStream;
- importjava.io.InputStreamReader;
- importjava.io.OutputStream;
- importjava.net.InetAddress;
- importjava.net.NetworkInterface;
- importjava.net.Socket;
- importjava.net.ServerSocket;
- importandroid.app.Activity;
- importandroid.app.AlertDialog;
- importandroid.app.Dialog;
- importandroid.content.Context;
- importandroid.content.DialogInterface;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- importandroid.os.Handler;
- importandroid.os.Message;
- importandroid.view.View;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- importandroid.widget.TextView;
- publicclasstcp_serverextendsActivity{
- privateButtonserverStart_btn;
- privateButtonserverStop_btn;
- privateTextViewreceivedata_tv;
- privateButtonsetport_btn;
- privateEditTextsenddata_et;
- privateButtonsend_btn;
- publicintPORT=8080;
- publicHandlermHandler;
- protectedstaticfinalintGUINOTIFIER=0x1234;
- @Override
- publicvoidonBackPressed(){
- //TODOAuto-generatedmethodstub
- super.onBackPressed();
- Intenti=newIntent();
- i.setClass(tcp_server.this,MainActivity.class);
- startActivity(i);
- finish();
- }
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- //TODOAuto-generatedmethodstub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.tcpserver_main);
- serverStart_btn=(Button)findViewById(R.id.btnStart);
- serverStop_btn=(Button)findViewById(R.id.btnStop);
- setport_btn=(Button)findViewById(R.id.btnSet);
- send_btn=(Button)findViewById(R.id.btnSend);
- senddata_et=(EditText)findViewById(R.id.et_send);
- receivedata_tv=(TextView)findViewById(R.id.tv_receive);
- serverStart_btn.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- serverStart_btn.setEnabled(false);
- setport_btn.setEnabled(false);
- serverStop_btn.setEnabled(true);
- newThread()
- {
- @Override
- publicvoidrun(){
- //TODOAuto-generatedmethodstub
- super.run();
- ServerSocketserverSocket=null;
- try{
- //创建ServerSocket对象监听PORT端口
- serverSocket=newServerSocket(PORT);
- //接收tcp连接返回socket对象
- Socketsocket=serverSocket.accept();
- //获得输入流
- InputStreaminputStream=socket.getInputStream();
- ///////////////////////////////////////////////////////////////////////////////////////
- //获得输出流
- OutputStreamoutputStream=socket.getOutputStream();
- byte[]byteBuffer=newbyte[1024];
- inttemp=0;
- Strings;
- //读取接收到的数据
- while((temp=inputStream.read(byteBuffer))!=-1)
- {
- outputStream.write(byteBuffer,0,temp);
- //将byte转为string
- //String(byte[],int,int)使用平台的缺省字符编码方式转换指定的字节子数组生成一新的String
- s=newString(byteBuffer,0,temp);
- //将string转byte
- //byte[]bs=str.getBytes();
- //定义一个message的变量m
- Messagem=newMessage();
- //消息的标记GUINOTIFIER在前面定义的
- m.what=tcp_server.GUINOTIFIER;
- //将要传送的数据传递给m.obj
- m.obj=s;
- //传送消息
- tcp_server.this.mHandler.sendMessage(m);
- }
- //System.out.println(newString(byteBuffer,0,temp));
- outputStream.flush();
- socket.close();
- serverSocket.close();
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- }.start();
- }
- });
- //创建handler
- mHandler=newHandler(){
- publicvoidhandleMessage(Messagemsg){
- switch(msg.what){//得到Handle的通知了这个时候你可以做相应的操作
- casetcp_server.GUINOTIFIER://tcp_server是Activity的类名
- //清空textView
- receivedata_tv.setText("");
- //设置textView显示内容
- receivedata_tv.setText(msg.obj.toString());
- break;
- }
- super.handleMessage(msg);
- }
- };
- //结束TCP服务器
- serverStop_btn.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- serverStart_btn.setEnabled(true);
- setport_btn.setEnabled(true);
- serverStop_btn.setEnabled(false);
- Intenti=newIntent();
- i.setClass(tcp_server.this,MainActivity.class);
- startActivity(i);
- finish();
- }});
- }
- }
- tcpserver_main.xml
- <?xmlversion="1.0"encoding="UTF-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:orientation="horizontal">
- <Button
- android:id="@+id/btnStart"
- style="?android:attr/buttonStyleSmall"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="开启服务"/>
- <Button
- android:id="@+id/btnStop"
- style="?android:attr/buttonStyleSmall"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="关闭服务"/>
- <Button
- android:id="@+id/btnSet"
- style="?android:attr/buttonStyleSmall"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="端口设置"/>
- </LinearLayout>
- <TextView
- android:id="@+id/tv_receive"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.70"
- android:text="TextView"/>
- <EditText
- android:id="@+id/et_send"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:ems="10"
- android:inputType="textMultiLine">
- <requestFocus/>
- </EditText>
- <Button
- android:id="@+id/btnSend"
- style="?android:attr/buttonStyleSmall"
- android:layout_width="148dp"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:text="发送"/>
- </LinearLayout>
- <uses-permissionandroid:name="android.permission.INTERNET"/>
相关推荐
本示例中的"android TCP server 和TCP client通信源码"着重于实现Android设备上的服务器(Server)和客户端(Client)通过TCP协议进行通信,特别是在与串口WiFi模块ST-MW-08S交互的情况下。 首先,我们要理解TCP...
本资源"TCP-Server-Client-Library.zip"提供了一个跨平台的TCP服务器和客户端库,支持包括Android、Windows(Win32和Win64)、OSX以及iOS在内的多种操作系统。 这个库特别强调了对Android TCP服务器和Delphi ...
Android TCP服务器精简实用代码,适用于99%的android studio环境,同时集成一个网络调试工具,方便大家调试。
本Demo主要实现了安卓(Android)TCP 客户端(Client)和服务器(Server)Demo的Socket通讯。以及对接硬件的项目数据在十六进制&&byte&&int的转换处理。 要注意BufferedReader的readLine()方法的阻塞问题: 读取socket输入...
本示例主要涉及如何在Android中实现TCP客户端(TCP client)和服务器(TCP server)的开发,这对于创建需要进行网络交互的应用来说至关重要。 TCP客户端是发起连接请求的一方,它需要连接到服务器并发送或接收数据...
在Android Studio中开发TCP客户端程序是一项基础且重要的技能,它涉及到网络编程和设备间的数据通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,广泛应用于...
- 可能包含一个`TcpServer`类,用于启动和停止服务器,以及处理客户端连接。 - 另外,可能有一个`TcpClient`类,用于连接服务器并发送/接收数据。 7. **实际应用**: - Android应用中使用TCP通信的场景可能包括...
在提供的文件名`AndroidTcp`中,我们可以推测这可能是包含了Android TCP通信示例代码的文件。这个文件可能包含了客户端和服务器端的Java源码,展示了如何在Android环境中实现TCP通信。通过分析和学习这份代码,...
标题"Android TCP/IP server client demo"暗示我们将创建一个Android应用程序,该程序同时具备服务器和客户端功能,以便在同一设备上进行通信测试。这对于学习和理解TCP/IP通信的基本原理非常有用。 在描述中提到,...
本资源"Android-tcp-server-and-client.zip"包含了一个Android TCP客户端和服务器端的示例,可以帮助开发者理解如何在Android设备上建立TCP连接,进行数据传输。以下是关于Android TCP通信的关键知识点: 1. **TCP...
提供的文件"TCPServer"可能包含了实现上述功能的代码示例,具体实现细节需要查看源代码才能了解。通过这样的服务器,Android设备可以与其他设备进行双向通信,实现数据共享和交互,广泛应用于物联网、远程控制、游戏...
5. **AndroidTCP项目结构**: - `MainActivity.java`:包含应用的主要逻辑,包括创建Socket,设置输入输出流,发送和接收数据的代码。 - `strings.xml`:可能包含了服务器地址和端口的字符串资源。 - `...
在Android平台上进行TCP通信是移动应用开发中常见的一项任务,特别是在需要实现设备间或者设备与服务器间实时数据传输的场景。TCP(Transmission Control Protocol)是一种面向连接、可靠的传输协议,确保了数据包的...
在Android平台上开发应用程序时,有时候我们需要实现客户端与服务器之间的通信,TCP(传输控制协议)是一种常用的网络通信协议,常用于构建可靠的数据传输服务。在这个"Android TCP_Client"项目中,我们探讨了如何在...
在Android平台上实现TCP服务器源码是一项技术性强且实用的任务,尤其对于进行移动设备间的通信或者设备与服务器间的数据交互有着重要的意义。这个"Android TCP服务器源码"是一个基础的示例,它展示了如何在Android...
Android 端的TCP Server应用,含简单的数据收发,代码从网上抄的,将工程上传方便使用。
本篇文章将深入探讨如何使用C语言在Android Native层实现TCP服务器(Server)的创建以及客户端(Client)的连接。我们将主要关注以下几个方面: 1. **Android NDK与JNI** Android Native Development Kit (NDK) 是...
在这个场景中,我们探讨的是如何使用Python和Android实现TCP(Transmission Control Protocol)通信。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,广泛应用于互联网上的各种服务,如HTTP、FTP等。 ...
【标题】:“基于ardunio的TCP server的创建” 在物联网(IoT)领域,Arduino是一种流行的开源电子原型平台,广泛用于制作各种创意项目。在这个主题中,我们聚焦于如何利用Arduino来创建一个TCP服务器,这允许Arduino...
AndroidServer基于 Kotlin + Netty 开发,为 Android App 提供 Server 的功能,包括 Http、TCP、WebSocket 服务Feature:支持 Http、TCP、WebSocket 服务支持 Rest 风格的 API、文件上传、下载支持加载静态网页Http ...