簡體   English   中英

通過套接字將數據從Objective-C發送到Java

[英]Sending data via a socket from Objective-C to Java

我有一個Java程序(稱為Jack)和一個Objective-C程序(稱為Oscar),它們在同一台Mac OS X計算機上運行。 奧斯卡每秒通過套接字向傑克發送一條字符串消息。

為了提高可靠性和性能,最好在Jack和Oscar之間保持開放的插座? 還是最好反復打開一個套接字,發送消息,然后再次關閉該套接字?

保持打開狀態。 您將非常需要它(每秒一次),並且打開新的套接字會涉及一些開銷。 另外,您將用新對象來清理堆,直到垃圾收集器通過。

保持打開傑克,保持打開。 我已經花了一些CPU周期才能打開和關閉連接,然后在下一秒再次進行連接。

進行Java本機接口調用會更容易嗎? 就個人而言,我認為在本地搞亂套接字可能有點過大了,但是話又說回來,我不知道有關您要完成的工作的全部故事。

如果您可以丟棄一兩個數據包,則可能要使用UDP。

長期而言,長期的TCP連接有時會變得有些時髦,並且在連接變壞時會掛起。 通常會恢復,但並非總是如此-同時它們會變慢。

在您每次都重新發送所有數據並且不需要每個數據包的情況下,UDP可以更好地運行,因為您不需要關心歷史記錄...

保持開放的連接可能對您有用,並且從理論上講還不錯。。。我並不總是幸運的。

抱歉,我很快就讀了這個問題。 是的,如果套接字在本地計算機上,我將保持打開狀態。 打開和關閉需要分配的每個內存都沒有意義。 在這種情況下,來回研磨將無濟於事。

正是我所理解的正確,您正在編寫一個監聽連接的Cocoa服務器應用程序,以便它可以將某些數據傳遞給Java應用程序,而該Java應用程序無法訪問從Cocoa API返回的信息?

您確定不能僅從Java中的終端命令獲取結果。 我完全在猜測,但我想如果是這樣的話,您可以改善計划的工作。

暫無
暫無

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

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