android_项目_知识积累_mina通信(android手机登录功能)
来源:互联网 发布:excel如何查重复数据 编辑:程序博客网 时间:2024/05/15 13:18
前一篇文章实现了简单的mina服务器端与客户端通信,这篇文章我们要实现android手机上的登录功能。android的应用层语言是java,所以要把前一篇文章的程序改成android版本的也不难。接下来我们来看具体的实现:
服务器端:
和前面一篇文章的一样就可以了,这里不多说了,详细请看android_项目_知识积累_mina通信(java程序简单通信)。然后这里我们要做的就是把前一篇文章的客户端搬到android手机上来。
代码如下:
package com.example.android_mina_client;import java.net.InetSocketAddress;import java.net.SocketAddress;import org.apache.mina.core.filterchain.IoFilter;import org.apache.mina.core.future.ConnectFuture;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.transport.socket.SocketConnector;import org.apache.mina.transport.socket.nio.NioSocketConnector;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.button1).setOnClickListener(new android.view.View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfinal EditText t1 = (EditText) findViewById(R.id.editText1);final EditText t2 = (EditText) findViewById(R.id.editText2);if ("".equals(t1.getText().toString()) || "".equals(t2.getText().toString())) {Toast.makeText(MainActivity.this, "用户名和密码均不能为空!",Toast.LENGTH_LONG).show();} else {// loginnew Thread(){@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();login(t1.getText().toString(),t2.getText().toString());}}.start();}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private void login(String username,String userpasswd) {SocketConnector connector = new NioSocketConnector();IoFilter filter = new ProtocolCodecFilter(new TextLineCodecFactory());connector.getFilterChain().addLast("gzm", filter);SocketAddress soketAddress = new InetSocketAddress("192.168.80.105", 5333);//这里我用的局域网,我的电脑的IP是192.168.80.105connector.setHandler(new ClientHandler());ConnectFuture future = connector.connect(soketAddress);future.join();if (!future.isConnected()) {System.out.println("连接服务器失败!");return;}future.getSession().write(username+","+userpasswd);}}
其中的ClientHandler类依然不变,和上一篇文章的一样:
package com.example.android_mina_client;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;public class ClientHandler extends IoHandlerAdapter {public void messageReceived(IoSession arg0, Object message) throws Exception {System.out.println("服务器发来消息:" + message.toString());}public void exceptionCaught(IoSession arg0, Throwable arg1)throws Exception {}}
整个android工程的结构如下图:
先运行服务器端,然后再运行android客户端,实现的效果如下:
源码下载地址:http://download.csdn.net/detail/guozeming122/6870731
0 0
- android_项目_知识积累_mina通信(android手机登录功能)
- android_项目_知识积累_mina通信(java程序简单通信)
- 手机知识积累1
- 积累_知识_成长
- iOS 项目知识积累
- Android_登录界面功能和实现详解
- android 知识积累
- Android 界面知识积累
- Android知识积累
- android 知识积累
- Android知识积累
- android 知识积累
- Android知识积累
- Android_原型模式_项目应用
- Android_登录
- 8_后台开发零碎知识积累
- Android+struts2+json方式模拟手机登录功能
- android与本地tomcat的通信,实现登录功能
- Linux 安装 ssh
- 3.DispatcherServlet作用
- iReport导出Excel不分页
- 求奇数只和
- set 简单用法
- android_项目_知识积累_mina通信(android手机登录功能)
- Linux下sort命令小结
- MySQL索引类型一览 让MySQL高效运行起来
- C语言宏定义##连接符和#符的使用
- 第38届ACM/ICPC亚洲区域赛杂记(BY TY)
- Unity Shaders简介
- 研磨设计模式 之 状态模式(State)1——跟着cc学设计系列
- 小霸王给微软、索尼、任天堂上的一堂课
- 动态规划(数形)