簡體   English   中英

通過Kryonet發送對象會導致崩潰

[英]Sending object over Kryonet causes crash

我正在嘗試使用Kryonet發送對象。 對於大多數對象來說,它工作正常,但是對於我自己的Vector實現,它崩潰了。 該課程在兩面都注冊。 它包含一個空的構造函數,並且所有變量都被標為public。

public strictfp class StrictVector2f implements StrictVector
{
    public double x;
    public double y;

    public StrictVector2f()
    {

    }

    public StrictVector2f(double x, double y)
    {
        this.x = x;
        this.y = y;
    }

    public StrictVector2f(StrictVector2f src)
    {
        this.x = src.x;
        this.y = src.y;
    }

    public StrictVector2f(Vector2f src)
    {
        this.x = src.x;
        this.y = src.y;
    }

    public StrictVector2f add(StrictVector2f r)
    {
        return new StrictVector2f(this.x + r.x, this.y + r.y);
    }

    public StrictVector2f sub(StrictVector2f r)
    {
        return new StrictVector2f(this.x - r.x, this.y - r.y);
    }


    @Override
    public String toString()
    {
        return "StrictVector2f: [" + x + "|" + y + "]";
    }
}

將日志級別設置為TRACE時沒有錯誤。 該應用程序僅調用斷開連接(....)方法。 如果我從類定義中刪除strictfp,它仍然不起作用。

僅當我在另一個對象中引用StrictVector2f並嘗試發送該對象時,才會出現此問題。 僅發送StrictVector2f可以正常工作。

如果有人遇到同樣的問題。 當某些未正確設置Kryo序列化的對象時,將發生此崩潰。 確保您有一個空的構造函數,所有變量都是公共的,所有對象都以相同順序注冊在所有kryo對象上,並且如果在服務器和客戶端中有多個對象,請檢查相等。 那是我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM