问题标签 [asyncsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

iphone - 在 iPad 项目中包含 asyncsocket

我有很多时间将 asyncsocket 加载到我的 iPad 项目中,这样我就可以开始使用它了。到目前为止,我添加了 AsyncSocket.h 和 .m 类并加载了 CFNetwork.framework 并确保所有路径都对齐 - 但在尝试构建时出现 6522 错误。

第一个错误是 Block.h: no such file or directory。

有什么建议么?

谢谢,马特

0 投票
4 回答
1703 浏览

c# - C# 通过异步套接字连接发送具有序列化对象的对象大小

我想序列化一个对象并通过网络发送它。我已经在我的类和 BinaryFormatter 上使用 ISerializeable 属性设置它以将对象转换为字节。我可以发送对象并在接收端反序列化它。但是,为了确保在尝试重建对象之前拥有整个对象,我想将大小与流一起发送。我想将前几个字节设置为大小,检查接收到的数据何时至少是这个固定大小,然后我可以读取它并获取对象的完整大小。然后,只需等到我收到的数据是对象的大小+固定大小的字节。如何在流中偏移我的数据,以便我可以发送一个 int 将对象的大小存储为前几个字节,并将我的对象存储为剩余字节?

0 投票
5 回答
17455 浏览

c# - C# UDP Socket:获取接收者地址

我有一个异步 UDP 服务器类,在 IPAddress.Any 上绑定了一个套接字,我想知道接收到的数据包发送到哪个 IPAddress(...或接收到)。看来我不能只使用 Socket.LocalEndPoint 属性,因为它总是返回 0.0.0.0 (这是有道理的,因为它绑定到那个......)。

以下是我目前正在使用的代码中有趣的部分:

如前所述,这总是打印如下一行:

从 127.0.0.1:1678 到 0.0.0.0:12345 收到 32 个字节

我希望它是这样的:

从 127.0.0.1:1678 到 127.0.0.1:12345 收到 32 个字节

提前感谢您对此的任何想法! - 亚当

更新

好吧,我找到了一个解决方案,虽然我不喜欢它......基本上,我不是打开一个绑定到 IPAddress.Any 的单个 udp 套接字,而是为每个可用的 IPAddress 创建一个唯一的套接字。因此,新的 Starter 函数如下所示:

这只是为了说明这个概念,这个代码的最大问题是每个套接字都试图使用相同的缓冲区......这通常是一个坏主意......

必须有更好的解决方案;我的意思是,源和目标是 UDP 数据包头的一部分!哦,好吧,我想我会继续这样做,直到有更好的东西。

0 投票
2 回答
1274 浏览

c# - C#:Socket.ReceiveAsync 和部分接收

使用异步套接字时,特别是 Socket.ReceiveAsync,是否可以进行“部分”接收?例如,我想指定我期望 SocketAsyncEventArgs 对象上的 1024 个字节,但我想只允许接收它的一部分;例如,512 字节。因此,与其等待所有 1024 个字节都可用,我希望它用这 512 个字节进行回调。

这对异步套接字有可能吗?还是我需要使用非阻塞同步模式?

提前致谢。

0 投票
1 回答
679 浏览

flush - AsyncSocket writeData 终结者

我正在将 Java 中间件客户端移植到 objC。java 客户端在发送结束时使用 java stream.write 和 stream.flush。为了让 java 客户端发送到 Echo 服务器,我需要添加 stream.writeBytes("\r\n"); 其次是 stream.flush 让服务器将消息弹回。

我正在使用 asyncsocket 向中间件的服务器发送消息,但是在成功打开套接字后,中间件不会对使用发送的消息做出反应

此外,当套接字关闭时,中间件不会对缓冲区中的消息做出反应。

我目前正在使用

冲洗插座

0 投票
4 回答
11218 浏览

iphone - AsyncUdpSocket 如何使用接收

我正在尝试让一个在模拟器上运行的 iPhone 程序。我的问题是接收 UDP 数据。我使用 asyncUdpSocket。如果我制作一个套接字并使用sendData:(NSData) toHost:,... 那么它工作正常。

我只是想不通接收功能是如何工作的。

我假设是这样的:

我相信它应该调用该方法-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long) fromHost:(NSString *)host port:(UInt16)port

好吧,我在那个方法中放了一个 NSLog,它永远不会被调用。那么 [socket receive,..] 是唯一的接收方法,所以我想它应该是那个......或者我必须使用另一种方法吗?还是我必须对我的代表做一些补充或其他什么......我只是不知道我该怎么做

我搜索了 asyncUdpSocket 示例、教程、操作方法等,但我找不到示例。因此,如果有人想解释它或知道一个很好的解释,将不胜感激。

如果您不知道答案,无论如何感谢您的阅读!

0 投票
1 回答
1050 浏览

iphone - 在 iPhone 上侦听 CocoaASyncSocket 接收连接但新套接字不调用委托

我正在尝试通过指定 IP 来实现两个设备之间的基本消息传递。当一个设备告诉它的监听套接字监听如下:

didAcceptNewSocket委托被正确调用,并且应该向连接的 IP:Port 返回一个新的套接字。然而,据我所知,新套接字应该正在调用didConnectToHost,据我所知,它不是。

didConnectToHost正确实现,因为启动与其套接字的连接的设备在连接建立后正确调用它。

didAcceptNewSocket除了一些并将旧的侦听套接字设置为新的之外,我没有做任何事情NSLogs(因为之后不需要它,并且在之前将其分配给不同的变量并没有改变任何东西,也不应该改变任何东西)。

什么可以让我在监听端的新套接字不调用这个委托?

0 投票
2 回答
805 浏览

sockets - 云上简单的基于套接字的服务器

我正在编写一个应用程序来侦听特定端口上的传入连接。客户端是安装在汽车上的 GPS 跟踪设备,服务器目前使用异步套接字在 .NET 中实现。一切正常,但我正在考虑将服务器移至 Azure 等云服务,以减轻自己处理随时可能出现故障的硬件的苦差事。

我的问题是:云服务器能否为我提供一个固定的 IP 地址,我的代码将在该地址上侦听特定端口?服务器几乎不做任何处理(一些 NMEA 句子解析),所以我认为在云上托管的成本不会很高。任何提示表示赞赏。

0 投票
1 回答
629 浏览

iphone - AsyncSocket 和通知 - 内存泄漏

在以下情况下,我有内存泄漏。我每 30 秒读取一次数据,使用 SBJSONParser 将其转换为字典,添加通知,然后使用数据将其绑定到 tableview:

在 CustomViewController 我有观察者:

和 bindData 方法:

问题是:当我设置 company.name = 该字典中的某些内容时,我在线上出现内存泄漏: NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithDictionary:[content JSONValue]]; 自从我每 30 秒阅读一次以来,它一直在增加。

感谢您提供的任何帮助。谢谢。

0 投票
1 回答
1198 浏览

iphone - 在 Iphone SDK 上使用 AsyncUdpSocket 接收 UPD 包时出现问题

我有一个小应用程序来测试 iPhone 上的套接字处理,我使用 AsyncSocket/AsyncUdpSocket 库。

打开套接字并发送不是问题,但接收是。

正如我所说,我什么也没得到,但问题是,该方法是否仅在 upd 包完成时才被调用?包裹需要如何结束?零字节?

谢谢