草庐IT

ssl_read

全部标签

c# - System.IO.Stream.Read 卡住

我与服务器端建立了HTTP连接,使用System.IO.Stream.Read读取HTTP请求正文消息。问题是每隔几分钟服务器就会卡在Read语句上,并且在达到套接字超时或客户端关闭连接之前不会继续。intbytesRead=0;while(bytesRead如果流没有contentLength变量指定的数据量,就会发生这种情况。事实并非如此,因为当使用WireShark跟踪tcp流时,我看到整个消息正文(由contentLength指定)已到达服务器计算机。它仅在第一次“使用”while循环时发生,即仅在第一次流中没有“contentLength”字节数可在一次尝试和while中读取

ssl - TLS 记录的数量和长度如何影响 TCP 数据包?

我有一个使用TLS通过TCP连接交换数据的应用程序。如果我让所有的TLS连接都有相同数量的记录和相同的长度,这是否意味着相应的TCP连接也将有相同数量的数据包和相同的大小? 最佳答案 不一定。您无法控制TCP如何将有效负载分成段,或者IP如何将数据包分成片段。不能保证一次写入TCP等于一个段、数据包、片段。它可以做任何它喜欢的事情,从每个数据包向上发送一个字节。 关于ssl-TLS记录的数量和长度如何影响TCP数据包?,我们在StackOverflow上找到一个类似的问题:

java - 为什么我的 BufferedInputStream.read() 不能接收 -1?

伙计们,我一直在尝试编写一个使用TCP传输JSON字符串的程序。问题是,当我调用BufferedInputStream.read()时,我无法收到任何-1来指示JSON字符串的结尾。我的服务器代码是:publicvoidlisten(){try{if(getClient()!=null){Stringjst=null;Messagemsg=null;InputStreamin=getClient().getInputStream();BufferedInputStreaminBuf=newBufferedInputStream(in);ByteArrayOutputStreambaos

string - async_ read_until 没有按预期工作

所以我正在尝试编写一个程序,通过tcp套接字读取和写入数据。我可以成功地接受一个连接,向它写入数据(尽管写处理程序没有按预期工作?)。我还想通过同一个套接字读取数据——这似乎不起作用。处理这一切的类如下:usingnamespaceboost::asio;usingnamespaceboost::asio::ip;TcpServer::TcpServer(unsignedshortport=1700):ipPort(port){tcp::acceptoracc(svc,tcp::endpoint(tcp::v4(),ipPort));acc.listen();acc.async_acc

c++ - 在 async_read 处理程序在服务器中返回错误后调用 boost::asio::tcp::socket 方法

对于日志输出,我正在调用tcp::socket::remote_endpoint()来自shared_ptrSessionSession时的对象创建和销毁的时间。如果async_read被调用并且客户端在服务器发送回复之前发送了一个FIN,然后在服务器发送回复之后发送了一个RST数据包(write不返回任何错误),async_read函数返回错误代码system::54(not_connected-带有“连接由对等方重置”的消息),然后当我再次调用remote_endpoint方法时(在Session对象析构函数中)它抛出异常:libc++abi.dylib:terminatingwi

c# - 在 SSL 包装器的本地用户连接之后或之前建立远程 SSL 连接?

我正试图在C#中制作一个stunnel克隆,只是为了好玩。主循环是这样的(暂时忽略catch-everything-and-do-nothingtry-catches)ServicePointManager.ServerCertificateValidationCallback=Validator;TcpListenera=newTcpListener(9999);a.Start();while(true){Console.Error.WriteLine("Spinning...");try{TcpClientremote=newTcpClient("XXX.XX.XXX.XXX",2

c# - SSL 还是自己的实现?

我有一个用C#编写的客户端服务器应用程序。实际上,tcp连接是由rsa和rijandel加密的(就像可怜的ssl一样)。我经常读到,我应该使用像SSL这样的东西而不是自己的实现。我知道这是为什么。但是,如果我使用ssl,我将需要两份证书,一份用于客户端,一份用于服务器,对吗?(因为服务器也以其他方式向客户端发送一些数据)我如何对客户端执行此操作?或者我应该使用其他加密channel进行此通信吗? 最佳答案 SSL(或TLS)使用publickeycryptography出于两个目的。一种是加密通信channel(实际上只是为了交换对

sockets - tcp read() 在 accept() 之后立即

如果我在客户端同步connect()返回后立即调用send(),那么期望在服务器端accept()之后立即调用read()会返回第一段数据是否合理?即,接收SYN-ACK的客户端通常会稍等片刻,看看是否有任何有效负载要包含在完成3次握手的ACK中?我的协议(protocol)中的第一条消息将包含一个身份验证token( 最佳答案 没有。即使您可以依赖行为良好的客户端,但在网络问题中,依赖像这样可靠地发生的任何事情几乎永远是不安全的。此外,当您使用未加密的数据时,各种中间路由器会认为处理数据是他们的职责。使用UDP,问题实际上更简单,

qt - 如何在基于 Qt 的 TCP 服务器 - 客户端应用程序中忽略 SSL 错误

我正在实现使用TCP进行通信的客户端-服务器应用程序。我想使用SSL来提高安全性,但我需要使客户端甚至可以连接到具有自签名或“不是很安全”证书的服务器。现在我创建了一些随机测试证书,并尝试在我的本地机器上使用它(服务器和客户端都在那里运行,无法完成服务器主机解析,它只是本地主机)。我一直在客户端收到此错误:Socketerror:Thehostnamedidnotmatchanyofthevalidhostsforthiscertificate我试图通过使用以下代码来抑制这种情况://Wedon'tcareaboutselfsignedcertificatesQListerrors;e

node.js - 使用 SSL over TCP 在带有 NodeJS 的两台服务器之间建立安全连接

我正在尝试将一个包从一台服务器发送到另一台服务器,但我需要确保发件人是“真实的”发件人并且无法拦截该包,我如何使用SSL和NodeJS或其他方式来做到这一点.这是我所做的:服务器代码:server=tls.createServer(function(c){console.log('serverconnected',c.authorized?'authorized':'unauthorized');});客户端代码:vartls=require('tls');varfs=require('fs');varoptions={key:fs.readFileSync('server.key')