草庐IT

swift-block

全部标签

ios - Swift:TCP套接字保持事件状态

我正在开发一个iOS应用程序(使用Swift),它使用到TCP服务器的TCP连接。目前,每当我发送内容时,连接都会自动关闭。我想保持连接打开/事件,直到我手动关闭它。来自thisObjective-C-basedquestion我发现在Objective-C中可以这样做:#include...CFDataRefsocketData=CFReadStreamCopyProperty((__bridgeCFReadStreamRef)(stream),kCFStreamPropertySocketNativeHandle);CFSocketNativeHandlesocket;CFData

sockets - Swift 中的 TCP 套接字

我正在尝试使用GCDAsyncSocket快速编写一个TCP套接字客户端,但我遇到了很多问题。在我的代码中,我有一个NSTextField(称为框),这是我的代码:进口cocoaclassAppDelegate:NSObject,NSApplicationDelegate{@IBOutletweakvarwindow:NSWindow!@IBOutletweakvarbox:NSTextField!letbsocket=GCDAsyncSocket(delegate:AppDelegate.self,delegateQueue:dispatch_get_main_queue())fun

linux - Indy 10 以 1024 个 block 发送数据。如何增加 block 大小?

我同时开发了两个软件。一个是iOS设备的TCP客户端,用XCode开发,另一个是Linux操作系统的TCP服务器,它是在Lazarus中开发的,使用Indy10作为网络框架。我可以在服务器和客户端之间毫无问题地发送数据,然而,从服务器到客户端的数据传输速度对我来说是个问题。当从iOS客户端向Linux服务器发送数据时,我获得了每秒高达20MB的非常好的传输速度,但是当从Linux服务器向iOS客户端发送数据时,我每秒最多只能获得一百千字节(100kb)。Indy10以1024字节block的形式发送数据,我可以使用NSLog()在我的iOS应用程序中看到这一点。问题:如何更改Indy1

ios - 在 Swift 4 中从 InputStream 中准确读取 n 个字节

我有一台服务器通过TCP向我发送消息,其中前4个字节决定消息其余部分的长度。所以我需要1)将4个字节读入UInt32(有效)并将其存储到bytes_expected2)将bytes_expected字节读入消息现在我的代码是这样的:privateletinputStreamAccessQueue=DispatchQueue(label:"SynchronizedInputStreamAccess")funcinputStreamHandler(_event:Stream.Event){switchevent{caseStream.Event.hasBytesAvailable:self

解决 This request has been blocked; this endpoint must be available over WSS.

1、问题使用WebSocket在本地是没有问题的,能够和前端进行正常交互,但是将项目部署到服务器上,发现和前端建立不了WebSocket的连接,打开浏览器控制台报错:Thisrequesthasbeenblocked;thisendpointmustbeavailableoverWSS.2、理解1、首先我们要明白wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。2、利用nginx代理wss【通讯原理及流程】(1)、客户端发起wss连接连到nginx(2)、nginx将wss协议的数据转换成ws协议数据并转发到Worker

c - 按 block 发送数据

在C中,我必须使用tcp/ip发送一堆数据(~6.5mo)我正在使用“经典”send()。您认为将全部数据量分配给函数是个好主意,还是我应该更喜欢block方式(例如64ko的切片......) 最佳答案 给它完整的大小,然后用缓冲区的其余部分再次调用它(根据返回值)。您处理您的逻辑,让操作系统处理发送逻辑。 关于c-按block发送数据,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

swift - 停留在 hasSpaceAvailable 并且无法从 NSInputStream 读取

我在处理流事件时遇到问题。我有一个客户端应用程序,它通过TCP连接到服务器并不断从服务器接收JSON数据。到目前为止,我是这样创建流的://CreateStreamvarreadStream:Unmanaged?varwriteStream:Unmanaged?lethost:CFString=NSString(string:serverUrl!)letport:UInt32=UInt32(serverPort)CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,host,port,&readStream,&writeStrea

Delphi 2007,Indy 10 - 单向传输数据 block 的最简单的 TCP/IP 设置是什么

我有一个应用程序(“服务器”)每秒更新内存中的数据block-大约100k字节。在同一网络上的其他工作站上运行着1到4个“客户端”应用程序的其他实例,这些实例需要每秒读取相同的100k图像。到目前为止,这是通过将图像写入服务器上的文件并让客户端通过网络从该文件中读取来实现的。这多年来一直没有问题,但最近(恰逢转向基于Windows8的硬件)它出现了一个问题,除了一个节点之外,所有节点都无法访问该文件。退出在此节点上运行的客户端应用程序会释放文件,然后所有人都可以再次访问它。对于这次锁定的原因,我仍然感到困惑,但我想知道它是否可能是讨论的机制here,其中文件由于网络故障而未关闭。我认为

java - 通过套接字发送 10 MB 的缓冲区 - block 还是整个 10MB?

我正在将必须从我的C++函数发送到Java的详细信息转换为字符串和将通过套接字发送的char*。我的缓冲区大小是10MB。我可以一次发送10MB还是应该拆分并作为更小的内存块发送?这两种方法有什么区别?如果我应该发送较小的内存,block大小应该是多少? 最佳答案 CanIsendthe10MBinoneshot是的。orshouldIsplitandsendaschunksofsmallermemory?没有。Whatisthedifferencebetweenthosetwoapproaches?不同之处在于,在情况1中,您让T

swift - TouchesMoved swift 滞后

我正在使用SpriteKit中的Swift在Xcode6Beta6中编写代码。在代码中,当用户移动手指时,我需要一张图片来跟随手指。touchesMoved有效但有小故障。如果我慢慢移动手指,一切都很好。如果我从右向左快速移动手指,那么一切都很好。如果我从左到右快速移动手指,那么图片只会跟随手指几分之一秒。如果我在当前位置点击并按住图片大约半秒钟,那么当我从右到左或从左到右快速移动它时,一切都很好。总之,除非我点击并按住图片大约半秒钟,否则我无法从左到右快速移动图片。有人知道为什么会这样吗?谢谢你的时间。下面是代码。我正在移动SKSPriteNodefollow2overridefun