Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过套接字将数据从Objective-C发送到Java_Java_Objective C_Sockets_Ipc - Fatal编程技术网

通过套接字将数据从Objective-C发送到Java

通过套接字将数据从Objective-C发送到Java,java,objective-c,sockets,ipc,Java,Objective C,Sockets,Ipc,我有一个Java程序(称为Jack)和一个Objective-C程序(称为Oscar),我在同一台Mac OS X计算机上运行。Oscar通过套接字向Jack发送字符串消息,每秒一次 为了可靠性和性能,在插孔和Oscar之间保持开放式插座是否更好?还是重复打开一个套接字,发送消息,然后再次关闭套接字更好 对不起,我把问题看得太快了。是的,如果在本地机器上,我会保持插座打开。打开和关闭每个需要分配的内存是没有意义的。在那种情况下来回磨蹭是没有用的 正如我正确理解的那样,您正在编写一个Cocoa服务

我有一个Java程序(称为Jack)和一个Objective-C程序(称为Oscar),我在同一台Mac OS X计算机上运行。Oscar通过套接字向Jack发送字符串消息,每秒一次


为了可靠性和性能,在插孔和Oscar之间保持开放式插座是否更好?还是重复打开一个套接字,发送消息,然后再次关闭套接字更好

对不起,我把问题看得太快了。是的,如果在本地机器上,我会保持插座打开。打开和关闭每个需要分配的内存是没有意义的。在那种情况下来回磨蹭是没有用的

正如我正确理解的那样,您正在编写一个Cocoa服务器应用程序来侦听连接,这样它就可以将一些数据传递给无法访问Cocoa API返回的信息的Java应用程序


您确定不能仅从Java中的终端命令获取结果吗。我完全是在猜测,但我想如果是这样的话,你可以改进你的计划。

对不起,我读问题的速度太快了。是的,如果在本地机器上,我会保持插座打开。打开和关闭每个需要分配的内存是没有意义的。在那种情况下来回磨蹭是没有用的

正如我正确理解的那样,您正在编写一个Cocoa服务器应用程序来侦听连接,这样它就可以将一些数据传递给无法访问Cocoa API返回的信息的Java应用程序


您确定不能仅从Java中的终端命令获取结果吗。我完全在猜测,但我想如果是这样的话,你可以改进你的计划。

保持开放。您将非常需要它(每秒一次),并且在打开新的套接字时会有一些开销。另外,在垃圾回收器出现之前,您将用新对象来吞噬堆。

保持其打开状态。您将非常需要它(每秒一次),并且在打开新的套接字时会有一些开销。另外,在垃圾回收器出现之前,您将一直在用新对象吞噬堆。

进行Java本机接口调用会更容易吗?就我个人而言,我认为在本地处理套接字可能有点过火,但我也不知道您试图完成的全部任务。

进行Java本机接口调用会更容易吗?就我个人而言,我认为在本地处理套接字可能有点过火,但话说回来,我不知道您要实现的目标的全部内容。

保持打开,杰克,保持打开。我已经花费了一些CPU周期来打开和关闭连接,只是在下一秒再做一次

杰克,把它打开。我已经花费了一些CPU周期来打开和关闭连接,只是在下一秒再做一次

如果您可以丢弃一两个数据包,您可能需要使用UDP

每隔一段时间,长期TCP连接就会变得有点不正常,当连接出现故障时就会挂起。通常情况下,他们会恢复,但并不总是——同时,他们可能会变慢

UDP在每次重新发送所有数据并且不需要每个数据包的情况下运行得更好,因为您不关心历史


保持一个开放的连接可能对你有用,理论上是好的。。。我只是运气不太好。

如果你能忍受掉一两个数据包,你可能会想改用UDP

每隔一段时间,长期TCP连接就会变得有点不正常,当连接出现故障时就会挂起。通常情况下,他们会恢复,但并不总是——同时,他们可能会变慢

UDP在每次重新发送所有数据并且不需要每个数据包的情况下运行得更好,因为您不关心历史


保持一个开放的连接可能对你有用,理论上是好的。。。我只是运气不太好。

不是通过网络。两个进程都在同一台机器上本地运行。我需要定期获取一些通过Java无法获得的Mac系统信息。这些信息实际上不是通过网络获得的。两个进程都在同一台机器上本地运行。我需要定期获得一些通过Java无法获得的Mac系统信息。这是一条评论,不是答案。我想下一个问题是,如果你出于某种原因使用两台机器而不是一台机器,那么我将使用JNI和sockets进行比较。JNI是令人讨厌的东西,容易产生混乱的bug。这是一个评论而不是答案。我想下一个问题是,如果你出于某种原因使用两台机器而不是一台机器,那么我将使用JNI和sockets进行比较。JNI是令人讨厌的东西,容易产生乱七八糟的bug。