问题标签 [stream-socket-client]
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.
c# - 如何通过 StreamSocket (winRT) 发送 FTP 命令
我正在尝试从 Windows Phone 8.1 连接到我的 filezilla ftp 服务器。
我现在有这个代码:
ConnectAsync 正常工作:
但是对于用户命令,这是服务器收到的:
我在我的 OutputStream 上正确写入了吗?
java - C# Windows 应用程序从流套接字读取数据不可理解
我正在尝试实现服务器和客户端之间的简单 StreamSocket 通信。服务器用 Java 编写,客户端用 C# 编写。
从客户端向服务器发送消息(字符串)可以正常工作。但反过来,我遇到了一些麻烦。
当我从服务器向客户端发送一个字符串时,我希望每条消息都从客户端打印出来。
我在客户端初始化我的 StreamSocket,如下所示:
我想要,客户端打印出服务器上的每个字符串,即使消息有多长。但是,如果我从服务器向客户端发送消息,尽管我将 StreamSocket 的选项设置为Partial
.
例如:
我尝试了不同版本的LoadAsync()
其他尺寸(不是 256)和UnconsumedBufferLength
. 但每次我都有相同的结果。谁能告诉我,怎么了?
最好的问候 DJTrust
php - PHP SSL stream_socket_client 不会使用创建的 $context
我完全失望了。我正在连接到 ssl 服务器,并且直接连接运行良好,但是当我尝试添加流上下文以使用代理或 socks5 时,socket 不会使用它并且无论如何都可以很好地直接连接到这些 ssl:// 服务器,我我通过观看 127.0.0.1 代理服务器日志进行检查 - 甚至没有连接尝试。另外,我可以使用 socks5:// http 代理选项将流包装到 socks5 服务器中吗?
windows-runtime - WinRt StreamSocket.ConnectAsync 异常
我正在用 C# 编写一个 WIntRt 应用程序,并且我使用 StreamSocket。
我遇到问题的代码片段如下所示
我的问题是,当远程主机不可访问时,我的程序反而进入了 catch 块,存在于 try..catch 块所在的函数中。当远程主机无法访问且 StreamSocket 无法连接到该主机时,我该如何处理?我如何确定它无法连接,因为目标主机无法访问?
java - 来自一个套接字的多个 io 流
我可以并行连接服务器套接字和客户端套接字的许多独立 I/O 流,以便每对 I/O 流可以同时发送不同的数据吗?
如何在不增加服务器和客户端之间的套接字数量的情况下在 java 中实现这样的连接?
c# - 为什么在循环中使用 StreamSocket 会导致内存泄漏?
我正在开发一个 C#、UWP 10 解决方案,它使用快速、连续的读/写循环与网络设备进行通信。API 提供的 StreamSocket 似乎工作得很好,直到我意识到存在内存泄漏:堆中有一个堆积,Task<uint32>
大约每分钟数百个。
无论我是在 中使用普通的旧while (true)
循环,还是使用带有 TPL 数据流async Task
的自发布(根据这个答案),结果都是一样的。ActionBlock<T>
如果我消除从套接字读取并专注于写入,我能够进一步隔离问题:无论我使用该DataWriter.StoreAsync
方法还是更直接的方法StreamSocket.OutputStream.WriteAsync(IBuffer buffer)
,问题仍然存在。此外,添加.AsTask()
到这些没有任何区别。
即使垃圾收集器运行,这些Task<uint32>
' 也不会从堆中删除。所有这些任务都是完整的 ( RanToCompletion
),没有错误或任何其他表明“尚未准备好被回收”的属性值。
在这个页面上似乎有一个提示我的问题(从托管世界到非托管世界的字节数组阻止内存释放),但规定的解决方案似乎非常明显:解决这个问题的唯一方法是将所有通信逻辑写入C++/CX。我希望这不是真的;当然,其他 C# 开发人员已经成功实现了无内存泄漏的持续高速网络通信。而且微软肯定不会发布一个只有在 C++/CX 中没有内存泄漏的情况下才能工作的 API
编辑
根据要求,一些示例代码。我自己的代码有太多层,但是可以通过这个 Microsoft 示例观察到一个更简单的示例。我做了一个简单的修改,循环发送 1000 次以突出问题。这是相关代码:
启动应用程序并连接套接字后,堆上只有一个实例Task<UInt32>
。单击“SendHello”按钮后,有 86 个实例。第二次按下后:129 次。
编辑#2 在运行我的应用程序(使用紧密循环发送/接收)3 小时后,我可以看到肯定存在问题:50 万个任务实例,它们永远不会被 GC 处理,并且应用程序的进程内存从初始值上升46 MB 到 105 MB。显然这个应用程序不能无限期地运行。 但是...这仅适用于在调试模式下运行。如果我在发布模式下编译我的应用程序,部署并运行它,则不会出现内存问题。我可以让它整夜运行,很明显内存管理得当。结案。
c# - 资源绑定后,带有 StremSocket 的 C# XMPP 挂起
我需要用 C# 为 UWP 应用程序构建一个 XMPP 客户端。
我知道有一些.NET 库,但似乎效果不太好(那些免费的),所以我决定自己实现它。
服务器端是一个 ejabberd 服务。
我以这种方式使用 StreamSocket(参考XMPP 3920bis):
一切正常,直到我发送初始状态,服务器没有响应并且连接关闭。
有任何想法吗?
c# - 创建 StreamSocket 以将 TCP 消息发送到不同的 IP 地址并在处理 StreamSocket 时发出
我正在为 Windows 10 开发通用应用程序,它需要 TCP 通信,为此我创建了一个通用类库,其中一个名为 TCPCom 的类实现了 IDisposable 接口。TCPCom 有一个 send 方法,它有以下代码。TCPCom 类的 Dispose 方法释放 StreamSocket 对象。
因此,在通用应用程序中的表单上,我将 TCPCom 的对象声明为全局变量,在发送按钮单击事件处理程序上,我正在创建新对象并调用发送方法。如果 Send 方法中发生错误,则 send 方法会捕获异常并在表单上引发事件。
现在我不知道在哪里处理 TCPCom 对象,任何人都可以指出正确的方向以便以适当的方式关闭/处理 TCPCom 对象。
c# - UWP,如何从 StreamSocket 读取所有数据
我正在尝试在 C# 中为 UWP 实现 XMPP 客户端,并为此实现我StreamSocket
用于TCP
连接的目的。
问题是,对于握手,SASL auth
我需要服务器从客户端进行一系列“写入和读取”,并且我无法立即读取服务器发送的所有数据;我想删除延迟部分。
这是我的代码:
XmppRead() 方法是这样的:
所以,我认为问题在于我尝试在服务器完成发送所有数据之前读取,所以我只能读取部分消息。我如何检查是否有其他没有阻塞的数据?
谢谢。