草庐IT

ssl_read

全部标签

c - Fork Process/Read Write through pipe 慢

回答https://stackoverflow.com/a/12507520/962890太琐碎了..args!但收到了很多好的信息。感谢大家。编辑github链接:https://github.com/MarkusPfundstein/stream_lame_testing原帖我有一些关于通过管道进行IPC的问题。我的目标是接收每个TCP/IP流的MP3数据,通过LAME将其解码为wav,进行一些数学运算并将其存储在磁盘上(作为wav)。我在整个过程中都使用非阻塞IO。让我有点恼火的是,tcp/ip读取比管道线槽快得多。当我发送~3MBmp3时,文件会在几秒钟内在客户端读取。一开始,

linux - epoll TCP 边缘触发最后一次 read(2) 调用的必要性

给定一个非阻塞TCP套接字,如果调用read(sock,buf,bufLen)返回一个值bufLen,然后等待边缘触发的EPOLLIN事件是否安全?还是我必须再次调用read以确保它为零或EAGAIN?在我的测试中,当我删除最后一个调用时,一切都保持正常,我只是想知道它是否在任何地方或Linux源代码中得到保证,以及我是否可以摆脱额外的调用。 最佳答案 你的问题在man7epoll中得到了回答。如您所见,它取决于套接字类型(数据包/流):Q9使用EPOLLET标志(边沿触发行为)时,是否需要连续读/写文件描述符直到EAGAIN?A9

c++ - boost::asio::async_read 在换行符上返回文件结尾错误

我正在尝试使用async_read和async_write向服务器发出简单的tcp请求并设置超时。问题是async_read在尝试读取直到传输结束时给出错误,在第一个'\n'上它返回错误(文件结束)。逐行读取字符串时(当eots->at(last_request)='\n')时,它成功读取了整个响应。if(eots->at(last_request)=="")//readuntilend{boost::asio::async_read(socket_,input_buffer_,boost::asio::transfer_at_least(1)//readuntillendorerro

c - TCP 套接字 : Can read() still fail with EINTR when select() indicates there are data available?

我正在使用select()从TCP套接字进行非阻塞read()。当select()指示有数据可供读取时,我不确定在read()之后是否还需要处理EINTR。 最佳答案 是的,绝对是。select函数是一个状态报告函数,它会在您调用select和您注意到它的返回值之间的某个时间报告某物的状态。它绝对没有任何future保证。这是一个非常普遍的误解。但是认为select确保future的操作将提供某些特定结果的想法与认为检查磁盘上是否有可用空间意味着future的写入不会失败一样是错误的。根据其判断,即使您认为有足够的可用空间,该实现也

c# - WCF net.tcp SSL : none of the cipher suites supported by the client application are supported by the server

我有两台PC,我们称它们为PC1和PC2。我编写了一个服务端应用程序,它打开一个自托管的WCFnet.tcp端点,使用X509证书进行保护。我用于传输安全的证书是“颁发给”一个任意名称,例如:MY-TEST-SERVICE。我还编写了一个客户端应用程序来与服务对话。它知道并指定服务将提供的DnsIdentity(MY-TEST-SERVICE),它使用服务用于传输安全的相同X509证书。当我在PC1上运行客户端时,它与PC1和PC2上的服务一起工作。当我在PC2上运行客户端时,它与PC1上的服务一起工作,但与PC2上的服务的SSL握手失败。在PC2上打开WCF客户端跟踪,然后成功连接到

ssl - socat - 如何监听非 ssl TCP 并转发到 ssl TCP 端点?

我看过一个使用socat接受sslTCP流量并将流量转发到非ssl主机的示例:socatTCP-LISTEN:443,reuseaddr,fork"^OPENSSL-SERVER,cert=server.pem|TCP:somehost:80"是否可以反其道而行之?IE。我有一台启用了ssl的远程主机,需要客户端证书,但我的客户端只能通过非ssl连接进行连接。我理解这种方法的安全隐患。 最佳答案 我的答案是:$socatTCP-LISTEN:51000,fork,reuseaddrOPENSSL:remotehost:51000,c

c - 服务器 TCP 卡在 read() 上

我正在尝试让服务器接收来自TCP客户端的消息。问题是,一旦我关闭客户端的套接字,我只会在服务器端收到消息。服务器端的读取函数如下:char*read_socket(intfd){intbytesRcvd,aux;char*buffer=(char*)malloc(BUFFSIZE*sizeof(char));bytesRcvd=read(fd,buffer,BUFFSIZE);aux=bytesRcvd;while(bytesRcvd>0){if((bytesRcvd=read(fd,&buffer[aux],BUFFSIZE))我知道(通过printfs)它卡在了线上:bytesRc

ssl - 服务器总是将 RST 发送到某些目的地,并向其他目的地发送适当的响应

我们有一个服务器来为我们的API提供服务。我已经使用它一段时间了,现在我正在经历我现在所说的一种从我们的API服务器到某些目的地的服务器偏见(对某些发件人好,对其他发件人不好)我想知道到底发生了什么。一些请求正在通过TCP重置(RST)进行响应,但其他请求确实得到正确响应(200状态,预期内容)。我想澄清的是,这并不是在服务器中明确完成的(我们实际上并没有选择要拒绝的目的地),而且对于我尝试过的每个客户端,我总是得到相同的结果(我的意思是,行为是确定性的,仅取决于发件人-至少表面上如此)。这是我发送的实际请求:GET/api/guilherme@buddycloud.org/metad

http - std::io::TcpStream::read_as_string 返回空字符串

我想在Rust中创建一个类似curl的函数。到目前为止,这是我使用的代码:matchUrl::parse(url){Ok(u)=>{matchTcpStream::connect(u.host.as_slice(),80){Ok(mutsocket)=>{letreq=format!("GET{:s}HTTP/1.1\r\nHost:{:s}\r\nAccept:*/*\r\nContent-Length:0\r\nContent-Type:aplication/x-www-form-urlencoded\r\n",u.path.path.as_slice(),u.host);sock

c++ - 从套接字迭代 read()

这是在套接字上迭代read的正确方法吗?我很难让它正常工作。data.size也是从套接字填充的unsignedint。它是正确的。data.data是一个unsignedchar*。if(data.size>0){data.data=(unsignedchar*)malloc(data.size);memset(&data.data,0,data.size);intremainingSize=data.size;unsignedchar*iter=data.data;intcount=0;do{count=read(connect_fd,iter,remainingSize);ite