Swift Socket 读行 写行

2023-12-12

抱歉,我的第一个问题是错误的;我想问的是 Swift Socket 而不是 Java

我正在尝试编写一个 Swift 客户端应用程序并连接到 Java 服务器。

我不知道如何在 Swift 客户端中使用 Socket。

我想要像下面的Java函数(out.println和in.readline)

THanks

Java 代码主要取自 Oracle 示例。

PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine;

out.println("Hello World");

while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
System.out.flush();

out.println("test");

if (inputLine.equals("Bye")) {
    break;
   }
}

out.close();
in.close();
socket.close();

抱歉第一次输入错误问题

你能告诉我在官方网站哪里可以找到如何使用Swift实现吗?或者教我如何实施? 非常感谢>

我的快速代码如下,我不知道如何获取字符串形式的readline(inputStream)。

我写

outputstream.write(queryString,maxLength: queryString.characters.count) 

并尝试发送到服务器。

但是服务器总是收到sendString中丢失的一些内容。

我的服务器在 Android 中使用 Socket 没问题

let addr = "xxooo"
    let port = 10009

    var inp : NSInputStream?
    var out : NSOutputStream?

    NSStream.getStreamsToHostWithName(addr, port: port, inputStream: &inp, outputStream: &out)
    print("test1")
    let inputstream = inp!
    let outputstream = out!
    inputstream.open()
    outputstream.open()
    print("test2 queryString=\(queryString)")

      outputstream.write(queryString,maxLength:queryString.characters.count)
    print("test3 \(queryString.characters.count)")
    let buffersize = 1024
    var buffer = Array<UInt8>(count : buffersize,repeatedValue :0)

    let bytesRead = inputstream.read(&buffer, maxLength: buffersize)
    var getString : NSString?
    print("test4")

    if(bytesRead>0){
        getString = NSString(bytes: &buffer, length: bytesRead, encoding:  NSUTF8StringEncoding)
        print("getString = \(getString!)")

    }else{

    }
    inputstream.close()
    outputstream.close()

你必须flush()PrintWriter在Socket的另一端接收数据。您正在调用 System.out.flush() 而不是 PrintWriter 。flush()

out.flush() // This will do the trick for you.

看看这篇关于套接字编程

EDIT:

在任何编程语言中,除了函数名称发生变化之外,套接字通信机制保持不变。

Server:

1)创建ServerSocket

2)无限循环中接受客户端套接字

3)在Client Socket上打开OutputStream并写入数据。

4)打开InputStream读取数据

Client

1)在特定IP和端口上打开到服务器的套接字

2)在Socket上打开OutputStream

3)将数据写入流(在带有写入器的流的包装器上)

4)打开Input Stream读取数据

看看这个Question用于套接字的快速客户端实现。

看一下 Swift 客户端和 Java 服务器article and SE问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift Socket 读行 写行 的相关文章

  • 如何在 RxSwift 中延迟地从 Collection 中一件一件地发出项目

    我想从anyCollection 创建一个Observable 它会在延迟后一一发出每个元素 另外 在下一步我想对项目 模型 执行一些更新 例如 喂所有狗 一只一只 间隔 5 秒 class Dog var name String var
  • 将字符串拆分为数组,在 Swift 中保留定界符/分隔符

    寻找一种 优雅的 解决方案来分割字符串并将分隔符保留为数组中的项目 示例1 hello world hello world 示例2 hello world hello world thx 假设您要使用名为的分隔符分割字符串separator
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • 如何在松开按钮后立即看到新的视频层?

    我有一个应用程序 用户可以按住按钮来拍摄视频 然而 当他们这样做时 带有视频播放的新图层不会立即出现 相反 有一个非常短的延迟 在用户松开按钮后 您可以看到相机仍然显示相机所看到的内容 延迟结束后 视频立即显示并开始播放 但是 我怎样才能使
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • iOS:如何在不降低 fps 的情况下播放音频?

    我正在使用 Sprite Kit 最好使用 Swift 库 为 iOS 9 开发游戏 目前 我正在使用 Singleton 在其中预加载音频文件 每个文件都连接到一个单独的 AVAudioPlayer 实例 这是一个简短的代码片段来了解这个
  • 从xcode上触摸屏的坐标获取ImageView的像素数据?

    单击视图并从视图内的图像获取正确的像素数据似乎存在问题 func handleTap gestureRecognizer UIGestureRecognizer print You tapped at gestureRecognizer l
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • 如何在 Swift 中将文件名与文件扩展名分开?

    给定包中文件的名称 我想将该文件加载到我的 Swift 应用程序中 所以我需要使用这个方法 let soundURL NSBundle mainBundle URLForResource fname withExtension ext 无论
  • Swift 运行时库与 Swift 标准库

    In this 关于如何使用 CocoaPods 的教程 https www raywenderlich com 97014 use cocoapods with swift我无法理解以下段落 与 Objective C 不同 标准 Swi
  • 如何使用 select 将数据从服务器发送到客户端

    我在一些教程的帮助下想出了一个代码 用于使用选择功能与客户端连接并接受来自客户端的消息 现在我想做的是在服务器需要时将数据发送到特定的客户端 如何做到这一点 提前致谢 服务器代码 include
  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com
  • 如何从 ContentView 外部显示 SwiftUI 警报?

    我正在构建 Swift 应用程序 并试图找出如何显示警报 我有一个单独的 swift 文件正在执行一些计算 并且在某些条件下我希望它向用户显示警报 基本上告诉他们出了问题 然而 我见过的大多数例子都要求警报在ContentView或以其他方
  • 如何使用 Vapor 和 Leaf 将图像从浏览器上传到 Amazon S3?

    我已经设置了 AWS S3 存储桶 并且可以使用 Vapor 3 和 Postman 上传文件 PUT request 和标头 x amz acl public read 但我想从浏览器中执行此操作 我使用的是 leaf 那么如何从浏览器上
  • Swift SpriteKit edgeLoopF​​romRect 问题

    下面的代码可以识别底部和顶部边缘场景和球按预期弹开 但是 那左边缘和右边缘现场的情况一直被破坏 如果施加足够的力 球会离开屏幕 然后最终返回 就好像场景的边缘超出了 iPhone 模拟器窗口的边缘 import SpriteKit clas
  • readLine() 只读取控制台中的第二个输入

    我刚刚开始使用 Kotlin 所以如果这是一个愚蠢的问题 我认为这可能是 我深表歉意 我正在跟进this https kotlinlang org docs tutorials jvm get started html指南 但遇到了一个问题
  • 如何在 Swift 中从 UIColor 获取 RGB 代码(INT)[重复]

    这个问题在这里已经有答案了 我想在 Swift 中获取 UIColor 的 RGB 值 let swiftColor UIColor red 1 green 165 255 blue 0 alpha 1 println RGB Value
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • “预期的 ';'在 Swift 下的顶级声明符之后”

    我正在尝试将所有颜色设置在一个 Swift 文件中 该文件可以在我的整个应用程序中使用 下面的代码会导致 import Foundation import UIKit class DotColors let tsblueColor UICo
  • 根据一个数组对多个数组进行排序

    如何根据数组对一堆数组进行排序createdAt 例如 2015 11 02 19 19 35 0000 将它们组合成另一种类型 字典 以便在 tableView 中使用是否有益 如果有的话如何 var comment AnyObject

随机推荐

  • 列复制并粘贴到行中

    我有一个包含以下内容的文件 sensor write reg client 0x57 0x00 sensor write reg client 0x58 0x00 sensor write reg client 0x59 0x00 sens
  • 将.c文件重命名为.cpp,导入Cython库失败

    我有一个正在运行的 Cython 程序 其中包含一些 C 库和自定义 C 代码 最近 我不得不将我的项目切换到 C 所以我将所有 C 代码重命名为 cpp Cython 编译良好并生成了 so文件 但是 当我尝试在 Python 中导入库时
  • 从现有按钮创建按钮数组(集合)

    有没有一种简单的方法可以从表单上的现有按钮创建按钮集合 在 c 中 我的表单上已经有一系列按钮 我想使用索引来访问它们 例如 myButtonArray 0 ForeColor Do something with it 这可以做到吗 编辑
  • 如何在c中获取时间戳

    我想获取我登录 c 的时间戳 我写了一个函数来获取时间戳 但是当我返回变量时我得到不同的值 My code include
  • 如何使用 Android SDK 和 AVD 管理器下载 Google API(因为它提供 SHA-1 MessageDigest 不可用)?

    我无法使用 Android SDK 和 AVD 管理器下载 Google API 每当尝试时 我都会收到以下错误 SHA 1 MessageDigest 不可用 有什么想法吗 我找到了在 Windows XP 环境中执行此操作的解决方法或正
  • Python:退出for循环?

    我对 SO 做了一些研究 并且知道有人提出了许多类似的问题 但我无法完全得到答案 不管怎样 我正在尝试构建一个库来使用 塞萨尔数字 技术 加密 字符串 这意味着我必须获取该字符串并将每个字母替换为字母表中 X 位置之外的另一个字母 我希望这
  • boost:asio::read 或 boost:asio::async_read 超时

    是的 我知道对此有一些疑问time out in boost asio 我的问题可能太简单了asio大伙在这里解决 我在用boost asio在 TCP 协议上以尽可能快的速度通过网络连续循环读取数据 跟随功能ReadData 不断接到工作
  • jsf 嵌入复合组件后如何禁用 ViewHandler 中的元素?

    如果满足某些条件 我将使用 ViewHandler 阻止任何访问页面上的所有输入元素 这对于 主 xhtml 文件中的输入元素非常有效 但复合组件中的输入元素不会被阻止 我认为这与 JSF 仅在我的 ViewHandler 完成其工作后才嵌
  • 为什么当 dir="rtl" 时表格边距会出错?

    when I change the page direction to rtl the table margins is go incorrect as in this picture but when I only remove the
  • CSS 类特异性顺序

    我定义了自己的 CSS 类 my ui table td border width 1px border 0 padding 5px 10px border style hidden border color inherit 默认 Prim
  • Meteor - 为什么我应该尽可能使用 this.userId 而不是 Meteor.userId() ?

    判断从这条评论作者 David Glasser 在 GitHub 问题中 this userId是主要 API 并且Meteor userId 是 JavaScript 新手的语法糖 他们可能还不了解成功使用它的细节 看来我们应该使用thi
  • Angular ui-router...显示默认选项卡

    我抵达bookDetails状态形成一些其他链接 这里bookDetails州的模板有不同的链接tabs 或模板 及相关控制器EditBookController有一个 json 文件 我使用它以不同的方式构建表单tabs与像这样的国家bo
  • 有没有办法在动态/扩展中执行链接空检查?

    C 有有用的空条件运算符 很好地解释了这个答案 too 我想知道当我的对象是动态 扩展对象时是否可以进行类似的检查 让我向您展示一些代码 给定这个类的层次结构 public class ClsLevel1 public ClsLevel2
  • 从Redis读取数据到Flink

    我一直在尝试找到一个连接器来将数据从Redis读取到Flink Flink 的文档包含用于写入 Redis 的连接器的描述 我需要在 Flink 作业中从 Redis 读取数据 在使用 Apache Flink 进行数据流传输 Fabian
  • 向 FlowDocument 文档添加页脚

    我想添加页脚流程文件在 wpf 中 请帮我看看如何添加 加载XAML文件后 您将获得一个IDocumentPaginatorSource对象 从中您可以获取其DocumentPaginator 您可以包装 DocumentPaginator
  • 从字符串中读取所有整数C++

    我需要一些帮助来从 std string 获取所有整数并将每个整数放入 int 变量中 字符串示例
  • TypeScript 中的泛型“新”约束等效项

    在 C 中 您可以执行以下操作 class ItemFactory
  • 将文本节点插入到包含 XML 的 XML 文档中

    我正在动态构建一个 XML 文档 其中使用 CreateTextNode 创建一个文本节点text 方法 现在万一text包含 XML 它将被 XML 编码 例如 text some b bolded b text 如何插入未经 XML 编
  • Java注释处理器将方法返回“TypeMirror”与已知类进行比较

    我的 Java 注释处理器正在生成一个接口的实现 该接口有一个MyInterface foo 方法返回CompletableFuture
  • Swift Socket 读行 写行

    抱歉 我的第一个问题是错误的 我想问的是 Swift Socket 而不是 Java 我正在尝试编写一个 Swift 客户端应用程序并连接到 Java 服务器 我不知道如何在 Swift 客户端中使用 Socket 我想要像下面的Java函