大吉大利,晚饭吃鸡!——accept关闭问题
假期收尾了,学芽子们都军训了。一群张一山和周冬雨在校内晃晃悠悠,说起来春风十里也就军训比较有意思。对于我这种一年追一部剧的人,显然是有点对不住。在我假期任务即将圆满之际,我开始放慢脚步寻找生活的美妙时刻,因为我还是渴望休息的,开学又要有开学的事情做,午休一会都要耍上几把《绝地求生大逃杀》!因为我还没有吃到鸡!·搞计算机的不玩游戏你说你搞不搞笑。咦,其实我也有几个月没玩了哈哈。
这个胜者吃鸡源于电影《决胜21点》中男主角在赌场常说的一句。“大吉大利,今晚吃鸡!”,而他还有一句话“我的人生观,昨天是历史,明天是个迷”我也很喜欢。

今天我发现我的学籍异动系统表设计的不太好,为了图方便把通知书表和申请书表给捏到一起了。出了一些麻烦,在软件架构方面我还是着急了,没有好好的全方面的了解这个系统就下手实现,犯了轻敌的错误。
可能最近我比较渴望休息,在技术方面比较浮躁,追求速度了些。反思。
总结一下前阶段做的传感器接收程序吧。java的,socket和线程结合,http加密发送请求,流的读写和16进制字节码以及log4j等。
我的程序角色是服务端server,传感器是客户端(每个传感器有各自端口,发送同一个端口的server)。程序启动传感器会根据ip端口连进来,我会定期像它发送16进制指令,把多参数数据读回来取平均值,检查数据是否异常,最后加密发给php网站。
我们都知道socket的accept是阻塞的方法。如果我去控制server的开关,会有一个大麻烦,就是端口占用问题。java.net.BindException: Address already in use: JVM_Bind,一定要关闭好socketServer和socket。
public static void socketServerInit(Main main){
Configuration configuration = null;
try {
LOG.info(">>>> 服务器已启动 <<<<");
ss = new ServerSocket();
ss.setReuseAddress(true);
ss.bind(new InetSocketAddress(Main.IpField.getText(),Integer.valueOf(Main.portField.getText())));
LOG.info(">>>> 配置成功,等待连接");
while (true) // 服务器端一直监听这个端口,等待客户端的连接
{
configuration=readConfig(configuration,main);
sk = ss.accept(); // 当有客户端连接时,产生阻塞
LOG.info(">>>> 获取一个连接");
saveConfigToLocal(configuration);
printBhOnView(main,sk,configuration);
LOG.info(">>>>>> 数据接收程序启动 <<<<<<");
SocketServerRun socketServerRun = new SocketServerRun();
socketServerRun.setConfiguration(configuration);
socketServerRun.setServer(ss);
socketServerRun.setSocket(sk);
Thread thread = new Thread(socketServerRun);
thread.start();
// new SocketThread(sk, configuration).start();// 新建一个socketThread处理这个客户端的socket连接
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
// try {
// if (sk != null) {
// sk.close();
// }
// if (ss != null) {
// ss.close();
// }
// } catch (Exception ex) {
// ex.printStackTrace();
// LOG.error(ex.getMessage());
// }
}
}
但还有麻烦,我当我连接了一个传感器后开启线程去读数据了,sk = ss.accept()这个代码会再次被执行到,去等下一个传感器。这时候关闭socket的话会报错java.net.SocketException: socket closed。总之很头疼。
在我的系统可以把它catch掉,然后不管他。但是这么做是不推荐的,等我想到解决办法再更新吧,今天先写到这接下来用到的技术我会挨篇写出。以供参考。

附一张图下章继续讲。
我没有每天玩喔,下了班之后还是要看王小波的书的。程序虽然很迷人,但我还有我的生活,它是我的一部分。
今天的情诗,就来一首徐志摩的《偶然》吧。来和我大声念(带感情),预备,起。
我是天空的一片云,
偶尔投影在你的心波——
你不必惊讶,
更无需欢喜——
在转瞬间消灭了踪影。
你我相逢在黑夜的海上,
你有你的,我有我的,方向;
你记得也好,
最好你忘掉,
在这交会时互放的光亮!
大吉大利,晚饭吃鸡!——accept关闭问题的更多相关文章
- GMA Round 1 大吉大利,晚上吃鸡
传送门 大吉大利,晚上吃鸡 新年走亲访友能干点啥呢,咱开黑吃鸡吧. 这里有32个人,每个人都可能想玩或者不想玩,这样子一共有$2^{32}$种可能.而要开黑当然得4人4人组一队(四人模式),所以说如果 ...
- [BZOJ5109]大吉大利,晚上吃鸡!
[BZOJ5109]大吉大利,晚上吃鸡! 题目大意: 一张\(n(n\le5\times10^4)\)个点\(m(m\le5\times10^4)\)条边的无向图,节点编号为\(1\)到\(n\),边 ...
- 【BZOJ5109】[CodePlus 2017]大吉大利,晚上吃鸡! 最短路+拓扑排序+DP
[BZOJ5109][CodePlus 2017]大吉大利,晚上吃鸡! Description 最近<绝地求生:大逃杀>风靡全球,皮皮和毛毛也迷上了这款游戏,他们经常组队玩这款游戏.在游戏 ...
- [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))
5109: [CodePlus 2017]大吉大利,晚上吃鸡! Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 107 Solved: 57[Sub ...
- NC14585 大吉大利,今晚吃鸡
NC14585 大吉大利,今晚吃鸡 题目 题目描述 糖和抖m在玩个游戏,规定谁输了就要请谁吃顿大餐:抖m给糖a b c三个驻, 并在a柱上放置了数量为n的圆盘,圆盘的大小从上到下依次增大,现在要做的事 ...
- 伪装为 吃鸡账号获取器 的QQ木马分析
本文作者:i春秋作家坏猫叔叔 0×01 起因随着吃鸡热潮的来临,各种各样的吃鸡辅助和账号交易也在互联网的灰色地带迅速繁殖滋生.其中有真有假,也不乏心怀鬼胎的“放马人”.吃过晚饭后在一个论坛看到了这样一 ...
- 为什么MOBA、“吃鸡”游戏不推荐用tcp协议——实测数据
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云游戏行业资深架构师 余国良 MOBA类和"吃鸡"游戏为什么对网络延迟要求高? 我们知道,不同类型的游戏因为玩法. ...
- 3D位置语音,引领吃鸡游戏体验升级
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 导语:在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的 ...
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
随机推荐
- 洛谷 P2128 赤壁之战
P2128 赤壁之战 题目描述 赤壁之战,黄盖率舰满载薪草膏油诈降曹军. 受庞统所授的连环计,曹军战船之间由铁索相连,没有两艘战船在同一位置,也没有铁索两两相交或穿过战船.每艘船都有其一定的战略价值. ...
- 作为一个程序员怎么通过android开发赚钱
上面是一个程序员通过Android开发每天的收入,信则有! 自己学安卓差不多,有一年了.我本来是从事javaweb开发的,可能学习安卓上手会快点.其实安卓没有那难 .首先开发安卓程序,要有一个,开 ...
- [MST] Create an Entry Form to Add Models to the State Tree
It is time to add new entries to the wishlist. We will achieve this by reusing forms and models we'v ...
- node07---post请求、表单提交、文件上传
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- zzulioj--1807--小明在努力(递归)
1807: 小明在努力 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 95 Solved: 35 SubmitStatusWeb Board Des ...
- lightoj--1214--Large Division(大数取余)
Large Division Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu Submit ...
- Nginx下部署TP5项目
标签(空格分隔): linux nginx配置文件: server { listen 81; #listen [::]:80; server_name _; index index.html inde ...
- java9新特性-17-智能Java编译工具
1.官方Feature 139: Enhance javac to Improve Build Speed. 199: Smart Java Compilation, Phase Two 2.使用说明 ...
- 什么是Node.js?
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适 ...
- 使用sysbench 对mysql进行性能测试
使用sysbench 对mysql进行性能测试 sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有My ...