小编Jak*_*sky的帖子

Apache MINA服务器在60秒后关闭活动的UDP"会话"

我的客户端 - 服务器应用程序在客户端和服务器端都与Apache MINA一起使用.通过UDP发送数据工作正常,但在一分钟服务器关闭连接(或MINA的方式 - "会话")后停止应答.

奇怪的是,连接始终处于活动状态.客户端每1000ms发送一次数据,服务器使用相同的数据回复它.我发现了一个MINA的机制来销毁非活动会话ExpiringMap,它有一个会话的生存时间的默认值,public static final int DEFAULT_TIME_TO_LIVE = 60;但我还没有找到一种方法如何更改它或更好,更新会话的生存时间.

Imho生存时间应该自动更新每个传入的数据包,但我找不到为什么不是我的服务器做的事情.我是否应该明确表示我不希望它破坏会话或什么?

我的代码与MINA的教程非常相似:

服务器

IoAcceptor acceptor = new NioDatagramAcceptor();
try {
    acceptor.setHandler( new UDPHandler() );
    acceptor.bind( new InetSocketAddress(RelayConfig.getInstance().getUdpPort()) );

    acceptor.getSessionConfig().setReadBufferSize( 2048 );
    acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, IDLE_PERIOD );
    System.out.println("RELAY ["+RelayConfig.getInstance().getId()+"]: initialized!");
} catch (IOException e) {
    System.out.println("RELAY ["+RelayConfig.getInstance().getId()+"]: failed: "+e.getLocalizedMessage());
    //e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

客户

NioDatagramConnector connector = new NioDatagramConnector();
connector.getSessionConfig().setUseReadOperation(true);

handler = new UDPHandler();
connector.setHandler(handler);
connector.getSessionConfig().setReadBufferSize(2048);

// try to connect to server!
try {
    System.out.println("Connecting to " …
Run Code Online (Sandbox Code Playgroud)

java udp network-programming client-server apache-mina

25
推荐指数
1
解决办法
1289
查看次数

Android:如何制作圆形相机预览?

如何创建像这样的圆形/椭圆形或圆角相机预览(中间的圆圈应该是相机预览)?

在此输入图像描述

伦敦图像用按钮和视图代表ui的其余部分,因此它必须是整体可见的,这就是为什么我不能使用像这样添加android:background为半径的形状矩形的解决方案:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <stroke android:width="3dip" android:color="#B1BCBE" />
    <corners android:radius="50dip"/>
    <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
Run Code Online (Sandbox Code Playgroud)

当我尝试将android:background椭圆形xml 设置为SurfaceView时,它也不起作用:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <size
        android:width="120dp"
        android:height="120dp"/>

    <stroke
        android:color="#FF000000"
        android:width="2dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

如果有可能以某种方式扩展SurfaceView并使用它,我应该重写什么?

camera android preview surfaceview

7
推荐指数
1
解决办法
2197
查看次数

如何在实时模板中自动导入项目的 R?

我正在尝试为 Fragment 的onCreateView(). 这是我现在的模板:

实时模板

用完后,R想手动导入。

结果

R默认情况下如何导入应用程序?或者,我可以以某种方式与Groovy脚本拿到项目包名称和它之前写的R一样$PACKAGE_NAME$.R.layout.$LAYOUT_NAME$,使它的工作?

groovy android live-templates android-studio android-studio-2.3

7
推荐指数
1
解决办法
390
查看次数

Python - re.findall返回不需要的结果

re.findall("(100|[0-9][0-9]|[0-9])%", "89%")
Run Code Online (Sandbox Code Playgroud)

这只返回结果[89],我需要返回整个89%.有什么想法可以吗?

python regex findall

5
推荐指数
2
解决办法
400
查看次数

LogCat错误:打开跟踪文件时出错:没有这样的文件或目录(2)

我在Eclipse中有一个全新的Android项目,一个活动有一个简单的textview,黑色背景,没有别的.我没有修改任何东西,除了添加一些权限,以便在互联网上听取一些建议.

当然有一些关于这个问题的线程,但是大多数它们被标记为错误打开跟踪文件的副本:没有这样的文件或目录(2).但该线程中的解决方案是"重新安装所有内容" - 这对我来说不是一个好的答案.我想知道什么是错的,怎么做才能修复它.

请帮助我得到一个答案,我真的明白这里有什么问题.

正如我所说,这是一个新的Eclipse项目,但如果你需要一些代码,请写一个评论.

在此先感谢您的帮助.

编辑:

我的清单:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.yellowjello.sejmipolitika"
        android:versionCode="1"
        android:versionName="1.0" >

        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >


            <activity
                android:name=".Main"
                android:screenOrientation="landscape" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>

        </application>
    </manifest>
Run Code Online (Sandbox Code Playgroud)

我的java:

    package com.yellowjello.sejmipolitika;

    import android.app.Activity;
    import android.os.Bundle;

    public class Main extends Activity{

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }

        @Override
        public void onBackPressed() {
            super.onBackPressed();
            this.finish();
            System.exit(0);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我的xml代码:

<FrameLayout …
Run Code Online (Sandbox Code Playgroud)

android trace logcat android-logcat

5
推荐指数
0
解决办法
3万
查看次数

Tomcat:每个应用程序的请求的状态代码404

我的Tomcat status code 404上部署的每个应用程序都会在我发出的每个请求中返回 我尝试过几个项目,helloworlds或者骷髅,每个项目的行为与其他项目相同:

在此输入图像描述


我用过的一些项目:

https://github.com/mwarman/skeleton-ws-spring-boot

https://spring.io/guides/gs/rest-service/(我可以运行它,mvn spring-boot:run但它不能部署到Tomcat)

https://github.com/shagstrom/spring-mvc-hibernate-skeleton


我正在使用最新的Tomcat8 (8.0.27),Oracle JDK 8.我也试过Tomcat7OpenJDK 7.使用的Tomcats在MACDebian上运行.我通过mvnIntellij Idea构建应用程序.

Tomcats很干净,没有更改配置(除了添加manager-gui用户).

由于我尝试了很多不同的项目,我不相信代码中存在问题.它是在Tomcat的配置中吗?我怎样才能让它发挥作用?

编辑: server.xml代码:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />

  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat maven http-status-code-404

5
推荐指数
1
解决办法
978
查看次数

如何在 Room 中映射 NUMERIC SQLite 类型?

我有一个无法更改或迁移的 SQLite 数据库,需要NUMERIC使用 Room将一列映射到我的 Kotlin 类。我需要使用什么作为 Kotlin 类中字段的数据类型?使用 Boolean、Integer、Double、String 时,它失败并显示类似的错误消息:

Expected:
TableInfo{name='calendars', columns={monday=Column{name='monday', type='REAL', affinity='4', ...}
 Found:
TableInfo{name='calendars', columns={monday=Column{name='monday', type='NUMERIC', affinity='
Run Code Online (Sandbox Code Playgroud)

编辑:我想可以更新数据库并更改列类型。但是我还是想知道有没有NUMERIC用Room映射的方法。

sqlite orm android android-room

5
推荐指数
1
解决办法
796
查看次数

如何在PROLOG中合并列表?

我需要合并两个列表L1 = [1,2,3]和L2 = [a,b],如下所示:M = [1,a,2,b,3].我怎么能在PROLOG中做到这一点?

prolog

4
推荐指数
1
解决办法
1万
查看次数

Python - 使用findall查找最长的序列

found = re.findall("g+", "fggfggggfggfg", re.DOTALL)
Run Code Online (Sandbox Code Playgroud)

我想使用findall为模式找到最长的匹配项.我找到了一些解决方案,但仅限于re.matchre.finditer.请问有人给我一个建议吗?

python regex findall

4
推荐指数
1
解决办法
554
查看次数

PHP - json_encode(字符串,JSON_UNESCAPED_UNICODE)没有逃避捷克字符

我正在从数据库中选择一些数据并将它们编码为json,但我遇到了类似捷克标志的问题

A,I,R,C,Z ...

我的文件是utf-8编码,我的数据库也是utf-8编码,我也设置了头文件到utf-8编码.我还应该做什么?

我的代码:

header('Content-Type: text/html; charset=utf-8');
while($tmprow = mysqli_fetch_array($result)) {
        $row['user'] = mb_convert_encoding($tmprow['user'], "UTF-8", "auto");
        $row['package'] = mb_convert_encoding($tmprow['package'], "UTF-8", "auto");
        $row['url'] = mb_convert_encoding($tmprow['url'], "UTF-8", "auto");
        $row['rating'] = mb_convert_encoding($tmprow['rating'], "UTF-8", "auto");

        array_push($response, $row);
    }

    $json = json_encode($response, JSON_UNESCAPED_UNICODE);

    if(!$json) {
        echo "error";
    }
Run Code Online (Sandbox Code Playgroud)

和部分印刷的json: "package":"zv???tkanalouce"

编辑:没有mb_convert_encoding()函数,打印的字符串为空,并打印"错误".

php encoding json utf-8

4
推荐指数
1
解决办法
2万
查看次数