<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

这一篇其实没什么可讲的,只提一下跟客户端不太一样的一些地方。

服务端跟客户端最大的区别是它面对的不是单单一个连接,而是有一些个连接。对于接收与发送来讲它是要具体到accept进来的每一个连接的,所以这里有一个SocketStateObject参数会贯穿始终,这个参数主要就是放对应客户端的Socket连接及一些状态变量,在accept进来一个连接后即创建一个这个对象。

public void Listen(int port)

{

IPEndPoint ipe = new IPEndPoint(IPAddress.Any,port);

workSock = new Socket(ipe.AddressFamily,SocketType.Stream,ProtocolType.Tcp);

workSock.Bind(ipe);

workSock.Listen(100);

acpT = new Thread(new ThreadStart(acceptThread));

acpT.IsBackground = true;

acpT.Start();

}

private void acceptThread()

{

while(true)

{

Socket asock = workSock.Accept();

SocketStateObject state = new SocketStateObject(asock);

if (OnConnect != null)

OnConnect(state,System.EventArgs.Empty);

ThreadPool.QueueUserWorkItem(new WaitCallback(ReceiveThreadEntryPoint),state);

}

}

象上面OnConnect事件及ReceiveThreadEntryPoint方法里都会跟进这么一个参数。

管理连接是个很复杂、很讲究技术的活。可用连接的数据接收与发送(甚至有些接收与发送必须是相关的)、连接的可用性监测、失效连接的移除。所有这些都要作应有的记录,并且一些还要往UI界面触发事件,事件触发这一点至关重要,也最为棘手,这其中涉及到很多线程同步、线程阻塞的问题。

对于这种极为复杂的问题,最好的解决方法是参照现有的成熟方案进行设计、实现或者拿来主义。但之前也没涉足到这些方面的开发,一时还真找不到比较理想的东西,加之项目本身对于通讯的要求不甚高,10个连接顶天了(如果真有哪个客户要10个签到终端,那真是绝对的上帝了,至目前为止最多的也就5个终端,一般不会多于3个),所以在这次开发中我就用了一些简单的方法来管理客户端的连接。

由于这一块并没有经过认真的设计,也暂时无力作认真的设计,最后实现的东西自己也不满意,这里就不去讲述如何实现管理连接的了。

转载于:https://www.cnblogs.com/lichdr/archive/2007/07/30/835987.html

RFID会议签到系统总结(二十一)――服务端的通讯相关推荐

  1. 搭建asp会议签到系统 第三章 会议签到

    搭建asp会议签到系统 第一章 账密登录 第二章 生成会议签到二维码 第三章 会议签到 第四章 会议统计 第三章 会议签到 搭建asp会议签到系统 前言 一.制作checkin前端页面 二.读取并展示 ...

  2. 搭建asp会议签到系统 第四章 会议统计

    搭建asp会议签到系统 第一章 账密登录 第二章 生成会议签到二维码 第三章 会议签到 第四章 会议统计 第四章 会议统计 搭建asp会议签到系统 前言 一.前端list view展示 二.后端帆软报 ...

  3. 搭建asp会议签到系统:第一章 账密登录

    搭建asp会议签到系统 第一章 账密登录 第二章 生成会议签到二维码 第三章 会议签到 第四章 会议统计 第一章 账密登录 搭建asp会议签到系统 前言 一.设置跳板 二.创建login.aspx页面 ...

  4. 人脸识别智能会议签到系统

    人脸识别智能会议签到系统 人脸识别智能会议签到系统 概述 人脸识别技术简介 随着高科技的蓬勃发展,人体特征分析技术已经作为身份快速识别及视频监控等领域的最新增值点与应用点,在身份识别.智能安防.智能监 ...

  5. 易签到PHP源码,会议签到系统(会易签到)应用项目源码

    基于生物信息识别的会议签到系统(会易) -- 会易签到app v1.0.0会易是一款集会议发布.与会人员签到,签到人员管理于一身的软件,其利用人脸识别技术和生物指纹识别技术,对参与会议的人进行识别从而 ...

  6. php会议签到签退系统,会议签到管理系统,无障碍会议签到系统,一卡通会议签到系统,会议签到系统 - 新开普(NewCapec)...

    会议签到系统 会议签到管理系统是对会议信息的一种统计和详细记录,对参加会议人员进行统一的管理,及时.准确地统计与会人员的迟到.早退.未参加等各种会议状态. 会议签到系统主要是在一卡通系统平台下开发的针 ...

  7. 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(四)服务端介绍

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 开源倾情奉献系列链接 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾 ...

  8. Netty实战 IM即时通讯系统(八)服务端和客户端通信协议编解码

    Netty实战 IM即时通讯系统(八)服务端和客户端通信协议编解码 零. 目录 IM系统简介 Netty 简介 Netty 环境配置 服务端启动流程 客户端启动流程 实战: 客户端和服务端双向通信 数 ...

  9. Netty实战 IM即时通讯系统(四)服务端启动流程

    ## Netty实战 IM即时通讯系统(四)服务端启动流程 零. 目录 IM系统简介 Netty 简介 Netty 环境配置 服务端启动流程 实战: 客户端和服务端双向通信 数据传输载体ByteBuf ...

最新文章

  1. Sqlite3数据库之第三方库FMDB学习心得
  2. ES6新增的let与const
  3. python画-如何用Python画一棵漂亮的树
  4. shader 4 杂 一些和函数名词、数据结构
  5. 8个适合用来练手的SpringBoot开源项目
  6. 局域网聊天工具FreeChat 1.0 开发日志
  7. 11.11 Ext JS Tooltip 出错 Uncaught TypeError: Cannot read property ‘contains‘ of null
  8. modules node 太大了_如何将Node.js Docker镜像大小减小10倍
  9. 记住没:永远不要在 MySQL 中使用 UTF-8
  10. Nginx 解决请求跨域 与 配置 gzip 压缩
  11. 应对对日软件开发的危机
  12. 数字序列中某一位的数字
  13. 简账(开源记账软件)-后端环境简介及部署
  14. Java自定义生成PDF报告
  15. 时域采样定理MATLAB实现
  16. 升级yosemite后java出错的解决
  17. 计算机组成原理头歌实验
  18. linux字体怪异_Linux默认安装的字体模糊难看
  19. curl 错误:unable to verify the first certificate 解决办法
  20. 聊一聊:相机篇1基本成像原理

热门文章

  1. SQLServer数据库实例相关知识笔记
  2. 计算机网络基础:IP基础知识笔记
  3. 不拦截指定路径_控制层访问拦截
  4. java中策略设计模式_Java中的设计模式(五):策略模式
  5. python 投资组合_成功投资组合的提示
  6. 从零开发一个命令行脚手架工具 等
  7. 小姐姐笔记:我是如何学习简单源码拓展视野的
  8. Kotlin防止按钮多次点击
  9. PopsTabView--filter容器
  10. 艾媒:第三方应用商店形成BAT3争霸格局