Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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
Java 与串行端口通信-iOS Swift_Java_Ios_Swift_Sockets_Socket.io - Fatal编程技术网

Java 与串行端口通信-iOS Swift

Java 与串行端口通信-iOS Swift,java,ios,swift,sockets,socket.io,Java,Ios,Swift,Sockets,Socket.io,我决定做一个开源项目。 该项目包括与串行端口的通信。这里是通用的命令参考,它通过串行端口接受通信。 该项目的开发人员给了我一个提示(Java代码),说明它将如何连接,以及如何将数据读/写到串行端口。 他是这么说的: 创建套接字的调用(通常为192.168.0.1和端口9999): 还有两个对象来完成这项工作: BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); BufferedWri

我决定做一个开源项目。 该项目包括与串行端口的通信。这里是通用的命令参考,它通过串行端口接受通信。 该项目的开发人员给了我一个提示(Java代码),说明它将如何连接,以及如何将数据读/写到串行端口。 他是这么说的:

创建套接字的调用(通常为192.168.0.1和端口9999):

还有两个对象来完成这项工作:

BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

char c;
out.write(":MS#");
if (in.ready()) c=in.read();
上述代码包括通过套接字的连接。在iOS Swift中我将如何做同样的事情。
如果您能提供一些提示,我们将不胜感激。

从IOKit、POSIX、Darwin/MachKernel中可以选择一系列选项。简言之,对于一件简单的事情来说,复杂得出奇!这是因为串行端口的遗留问题


在Swift中,将您与此隔离的流行框架是ORSSerialPort。这个开源项目的文档也不错。还有。模式相同,但更简单,不依赖于IOKit。它在Macos中使用POSIX api,还使用一些Mach内核特定的api进行线程和信号抽象。

有内置的套接字服务,如和新的(仅限iOS12-仍为beta版),但使用库可能更简单,如我将试一试。虽然我不知道如何沟通。任何建议都将不胜感激:从快速查看来看,“串行端口”实际上是一个终端服务器,正在侦听TCP套接字。您打开到该套接字的网络连接,输出流上发送的任何数据都会从串行端口发送出去,发送到串行端口的任何数据都会通过与连接相关联的输入流发送!我要试一试。谢谢。您需要熟悉处理异步事件,因为轮询串行端口获取数据或阻止等待输入不是一个好主意!这可能有助于未来的观众。那时我实现了我所追求的目标。以下是我构建的:
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

char c;
out.write(":MS#");
if (in.ready()) c=in.read();