资源简介
android 无线点餐系统,源码,能直接运行。

代码片段和文件信息
import java.io.FileInputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
public class clientServer {
public static final int PORT = 12315;
protected Selector selector;
protected Charset charset = Charset.forName(“UTF-8“);
protected CharsetEncoder charsetEncoder = charset.newEncoder();
protected CharsetDecoder charsetDecoder = charset.newDecoder();
int clientCount;
public clientServer() throws Exception {
selector = Selector.open();
ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
serverSocketChannel.socket().bind(new InetSocketAddress(PORT)); // port
serverSocketChannel.configureBlocking(false);
serverSocketChannel.register(selector SelectionKey.OP_ACCEPT);// register
p(“Server localhost:“ + PORT + “ started. waiting for clients. “);
while (true) {
int num = selector.select();//获取通道内是否有选择器的关心事件
if (num < 1) {//如果小于1停止此次循环进行下一个循环
continue;
}
Set selectedKeys = selector.selectedKeys();//获取通道内关心事件的集合
Iterator iterator = selectedKeys.iterator();//使用迭代放式,遍历事件集合
while (iterator.hasNext()) {
SelectionKey key = (SelectionKey) iterator.next();
iterator.remove();//移走此次事件
// 并在当前线程内处理。(为了高效,一般会在另一个线程中处理此消息,例如使用线程池等)
handleSelectionKey(key);
}
}
}
public void handleSelectionKey(SelectionKey selectionKey) throws Exception {
SocketChannel socketChannel;
if (selectionKey.isAcceptable()) { // 判断是否有新的客户端进来
clientCount++;
socketChannel = ((ServerSocketChannel) selectionKey.channel()).accept(); //得到与客户端通道的套接字
socketChannel.configureBlocking(false);
// 立即注册一个 OP_READ 的SelectionKey 接收客户端的消息
SelectionKey key = socketChannel.register(selector SelectionKey.OP_READByteBuffer.allocate(1024));
//key.attach(““);
key.attach(“第 “ + clientCount + “ 个客户端========================================= “);
//key.interestOps(SelectionKey.OP_ACCEPT);
System.out.println(“有新客户端连接“+socketChannel);
}
if (selectionKey.isReadable()) {
// 有消息进来 ,有数据可读
socketChannel = (SocketChannel) selectionKey.channel();
ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
try {
int len = socketChannel.read(byteBuffer);
if (len>0) {
byteBuffer.flip();
String msg = charsetDecoder.decode(byteBuffer).toString();
System.out.println(“接收数据: “+msg);
socketChannel.write(charsetEncoder.encode(CharBuffer.wrap(msg + “\n“)));
System.out.println(“返回数据: “+msg);
selectionKey.interes
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-26 22:21 无线点餐系统\
目录 0 2014-03-26 22:21 无线点餐系统\server\
文件 299 2013-08-08 19:23 无线点餐系统\server\.classpath
文件 382 2013-08-08 19:23 无线点餐系统\server\.project
目录 0 2014-03-26 22:21 无线点餐系统\server\.settings\
文件 629 2013-08-08 19:23 无线点餐系统\server\.settings\org.eclipse.jdt.core.prefs
目录 0 2014-03-26 22:21 无线点餐系统\server\bin\
文件 5171 2013-08-15 22:45 无线点餐系统\server\bin\clientServer.class
目录 0 2014-03-26 22:21 无线点餐系统\server\bin\com\
目录 0 2014-03-26 22:21 无线点餐系统\server\bin\com\vista\
目录 0 2014-03-26 22:21 无线点餐系统\server\bin\com\vista\Server\
文件 817 2013-08-15 22:45 无线点餐系统\server\bin\com\vista\Server\SelectorServer$HandleClient.class
文件 4746 2013-08-15 22:45 无线点餐系统\server\bin\com\vista\Server\SelectorServer.class
目录 0 2014-03-26 22:21 无线点餐系统\server\src\
文件 4388 2013-08-11 22:34 无线点餐系统\server\src\clientServer.java
目录 0 2014-03-26 22:21 无线点餐系统\server\src\com\
目录 0 2014-03-26 22:21 无线点餐系统\server\src\com\vista\
目录 0 2014-03-26 22:21 无线点餐系统\server\src\com\vista\Server\
文件 6573 2013-08-09 09:23 无线点餐系统\server\src\com\vista\Server\SelectorServer.java
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\
文件 380 2013-05-05 22:50 无线点餐系统\WirelessOrder_Client\.classpath
文件 856 2013-05-05 22:40 无线点餐系统\WirelessOrder_Client\.project
文件 1270 2013-05-05 22:40 无线点餐系统\WirelessOrder_Client\AndroidManifest.xm
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\assets\
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\bin\
文件 1270 2013-08-05 23:12 无线点餐系统\WirelessOrder_Client\bin\AndroidManifest.xm
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\bin\classes\
文件 48340 2013-05-05 23:02 无线点餐系统\WirelessOrder_Client\bin\classes.dex
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\bin\classes\com\
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\bin\classes\com\amaker\
目录 0 2014-03-26 22:21 无线点餐系统\WirelessOrder_Client\bin\classes\com\amaker\provider\
............此处省略153个文件信息
相关资源
- AndroidStudio版直连sqlserver
- android带百分比进度条的文件上传,使
- 美食天下项目Android版源码和Web版源码
- Android之自定义ToggleButton使用
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
- 单机搭建Android(解决Network is unreach
评论
共有 条评论