接口需求:开发一个UDP协议的接口作为服务端接收来自客户端的认证数据,数据量每分钟7w+条;

数据格式:标准的redius协议,redius协议的相关知识在网上查资料,提供线索:http://blog.sina.com.cn/s/blog_5fc93bc00102w9dr.html

问题:接口在启动一段时间过后收不到数据,程序出现假死现象,检查发现日志没有抛任何异常、进程也任然存在,添加各种日志调试程序,经过测试发现是数据处理速度上的问题,导致主机资源不够,添加线程后解决问题。

#修改代码如下:

private void init(int port) {
try {
// 获取本机上的网络接口对象
DatagramSocket ds = new DatagramSocket(port);
System.out.println("等待客户端数据……"); Map<String, String> dataMap ;
DatagramPacket dp;
while (true) {
try {
byte[] buf = new byte[256];
dp = new DatagramPacket(buf, buf.length);//重置内部长度
ds.receive(dp);// 阻塞式的
byte[] data = Arrays.copyOfRange(dp.getData(), 0,dp.getData().length);
            
new ServerThread(data);//启用线程处理接收到的数据
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception ef) {
ef.printStackTrace();
}
}
class ServerThread extends Thread {
private byte[] data;
public ServerThread(byte[] data) {
this.data = data;
start();
} public void run() {
try {
radius.radiusType(data);//redius报文解析
} catch (Exception e) {
e.printStackTrace();
}
}
}

UDP端口启动后一段时间无法接收到数据的更多相关文章

  1. ECSHOP后台登陆后一段时间不操作就超时的解决方法

    ECSHOP后台登陆后一段时间不操作就超时的解决方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2012-05-27   客户生意比较好,因此比较忙,常常不在电脑前 ...

  2. [转]kafka要等一段时间才能消费到数据

    kafka要等一段时间才能消费到数据  pythonkafka   为什么用python写的kafka客户端脚本,程序一运行就能生产数据,而要等一段时间才能消费到数据(topic里面有数据).(pyk ...

  3. 代码实现程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印

    package com.loaderman.test; import java.util.Comparator; import java.util.Scanner; import java.util. ...

  4. oralce11g RAC 启动后 CRS-0184: Cannot communicate with the CRS daemon.

    很奇怪的一个问题! ORACLE数据库服务器,系统启动之后,查看集群状态,发现CRS实例不可用,然后网上查找资料: 隔了几分钟之后,再次查询相关集群服务状态,发现正常了!!! 暂时得出的结论:操作系统 ...

  5. svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法

    安装好之后再windows上checkout项目,一直出错:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”:在尝试了很多次之后找到了最后的问题所在.  在网上找的方法试过了, ...

  6. CENTOS 配置好SVN服务环境后,其他服务器无法访问 Error: Can't connect to host '192.168.1.103': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    CENTOS 配置好SVN服务环境后,其他服务器无法访问   根据 下面的步骤配置好服务后,使用本机可以正常 连接到 SVN 服务, 但是使用局域网的其他服务器访问时出现下面的错误, Error: C ...

  7. WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...

  8. svn :Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败. -------------------------------- ...

  9. Scrapy,终端startproject,显示错误TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    F:\python_project\test>scrapy startproject spz Traceback (most recent call last): File "d:\p ...

随机推荐

  1. Bootstrap入门(第一天)

    一直都想认真的学习一下Bootstrap,但是由于种种原因,一直没有行动,虽然期间有使用过Bootstrap,但是都没有系统的学习过.最近工作室(学校老师的工作室)安排了一个前端任务让我跟进,主要是根 ...

  2. 利用Filter实现session拦截

    1.在web.xml中配置 <!-- Session监听器 --> <filter> <filter-name>sessionValidateFilter</ ...

  3. Json/Xml简介和处理模型

    JSON json简介 JSON是一种基于文本的数据交换格式,源自JavaScript,用于Web服务和其他连接的应用程序.以下部分介绍了JSON语法,JSON使用概述以及生成和解析JSON的最常用方 ...

  4. asp.net后台获取html控件的值

    1.asp.net后台获取前台type=text控件的值 前台:<input name="txtName" class="username" type=& ...

  5. canvas玩转微信红包

    CSS3相关属性: <!DOCTYPE html> <html> <head lang='en'> <meta charset='UTF-8'/> &l ...

  6. Android应用开发基础之八:广播与服务(二)

    服务两种启动方式 startService:服务被启动之后,跟启动它的组件没有一毛钱关系 bindService:跟启动它的组件同生共死 绑定服务和解绑服务的生命周期方法:onCreate->o ...

  7. 【2017-06-06】Qt中的键盘事件:QKeyEvent及相关处理函数

    QKeyEvent及其相关的处理函数,比如QKeyPressEvent.QKeyReleaseEvent()等在QtGui编程中非常常用,尤其是需要借助标准键盘的编码来实现一些自定义功能的时候. 这算 ...

  8. java--内存管理的几点小技巧

    今天看一本书,书上提到了内存泄露,后面也提到了内存管理的小技巧,在这里记下来,以免以后忘记. 1.尽量使用直接量.比如:String str = "I can play!";而不是 ...

  9. 一个程序猿试用有道云笔记VIP功能体验

    熟悉我的朋友应该知道,我有一个微信公众号,叫做"汪子熙", 我会定期在上面推送技术文章. 而我绝大多数技术文章都是在每天上下班的地铁上用手机写的,然后到家后同步到电脑上,进行发表. ...

  10. Selenium入门21 Select操作

    select元素有单独的类:from selenium.webdriver.support.ui import Select 界面上选出select元素后,Select(select)进行类型转换就可 ...