大吉大利,晚饭吃鸡!——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.添加了一些 ...
随机推荐
- SJTU 1319. countColors
题目描写叙述 知道 psypaint 怎么用吗?在巫女系统全面普及的未来世界.非常少人会知道 psypaint 的使用方法. 而身处在公安局作为监视官的朱同学.为了办案须要研究起了 psypaint ...
- hdu 5277 YJC counts stars
hdu 5277 YJC counts stars 题意: 给出一个平面图,n个点,m条边,直线边与直线边之间不相交,求最大团的数目. 限制: 1 <= n <= 1000 思路: 因为平 ...
- 手动配置三大框架整合:Spring+Struts2+mybatis
如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...
- oracle 存储过程定义及调试,并终于被C# 调用 代码
C# 调用存储过程 參考了非常多文章,写了例如以下文字,算是分享吧 目的:更改积分,并作一定校验 一.一般的调试方法: 方法一:带返回out參数,必须定义变量 myresult DECLARE myr ...
- poj--1703--Find them, Catch them(并查集巧用)
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64 ...
- [codeforces 618 F] Double Knapsack (抽屉原理)
题目链接:http://codeforces.com/contest/618/problem/F 题目: 题目大意: 有两个大小为 N 的可重集 A, B, 每个元素都在 1 到 N 之间. 分别找出 ...
- 11.string容器
#include <iostream> //string的本质也是容器 #include <string> #include <cstdlib> using nam ...
- CUDA中的归约
CUDA编程实战书中的乘方和解决办法: 对一个数组执行某种计算,然后产生一个更小的结果数组. 由一个线程在共享内存上进行迭代并计算出总和值.而如果用并行,所花时间就与数组长度的对数成正比. 代码的思想 ...
- Android chromium 2
Overview JNI (Java Native Interface) is the mechanism that enables Java code to call native function ...
- Linux 文件系统详解
作者: Paul Brown 译者: LCTT amwps290 这篇教程将帮你快速了解 Linux 文件系统. 早在 1996 年,在真正理解文件系统的结构之前,我就学会了如何在我崭新的 Linux ...