android 无线点餐系统,源码


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 + “
“)));
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.settingsorg.eclipse.jdt.core.prefs
     目录           0  2014-03-26 22:21  无线点餐系统serverin
     文件        5171  2013-08-15 22:45  无线点餐系统serverinclientServer.class
     目录           0  2014-03-26 22:21  无线点餐系统serverincom
     目录           0  2014-03-26 22:21  无线点餐系统serverincomvista
     目录           0  2014-03-26 22:21  无线点餐系统serverincomvistaServer
     文件         817  2013-08-15 22:45  无线点餐系统serverincomvistaServerSelectorServer$HandleClient.class
     文件        4746  2013-08-15 22:45  无线点餐系统serverincomvistaServerSelectorServer.class
     目录           0  2014-03-26 22:21  无线点餐系统serversrc
     文件        4388  2013-08-11 22:34  无线点餐系统serversrcclientServer.java
     目录           0  2014-03-26 22:21  无线点餐系统serversrccom
     目录           0  2014-03-26 22:21  无线点餐系统serversrccomvista
     目录           0  2014-03-26 22:21  无线点餐系统serversrccomvistaServer
     文件        6573  2013-08-09 09:23  无线点餐系统serversrccomvistaServerSelectorServer.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_ClientAndroidManifest.xml
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientassets
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientin
     文件        1270  2013-08-05 23:12  无线点餐系统WirelessOrder_ClientinAndroidManifest.xml
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientinclasses
     文件       48340  2013-05-05 23:02  无线点餐系统WirelessOrder_Clientinclasses.dex
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientinclassescom
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientinclassescomamaker
     目录           0  2014-03-26 22:21  无线点餐系统WirelessOrder_Clientinclassescomamakerprovider
............此处省略153个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)