C++从Socket读入std::string
我正在编写使用C插座的C ++程序.我需要一个功能来接收我想返回字符串的数据.我知道这将行不通: std::string Communication::recv(int bytes) { std::string output; if (read(this->sock, output, bytes)
0 2023-09-29
编程技术问答社区
是否可以使用std::string来读取()?
是否可以使用std ::字符串进行read()? 示例: std::string data; read(fd, data, 42); 正常,我们必须使用char*,但是可以直接使用std ::字符串吗? (我更喜欢为储存结果创建一个char*) 谢谢 解决方案 好吧,您需要以某种方式创建char*,因为那是 功能需要. (顺便说一句:您在谈论POSIX功能 read,不是吗,不是std::istream::read?)问题不是 char*,这是char*指向的(我怀疑这是什么 您实际上是指). 这里最简单,通常的解决方案是使用本地数组: char buffer[43]; int len = read(fd, buffer, 42); if ( len
0 2023-09-29
编程技术问答社区
Python 将 stdout 重定向到套接字
我在计算机" A"上运行脚本.然后,我通过脚本连接到计算机" a"计算机" b".我将消息发送到计算机" A",而我​​的脚本则使用exec()指令运行. 我想通过计算机上的插座在计算机" A"上执行我的消息的结果. 我尝试更改sys.stdout = socket_response,但有一个错误:"插座对象没有属性写()" 因此,如何通过插座连接从计算机" A到计算机" B"到计算机" B>将标准输出(对于print或exec())重定向? 我的脚本将是某种" python解释器". 对不起,如果没有声誉,我无法回答自己的问题 感谢所有! 我使用一种简单的方式,@Torxed建议我.这是我的伪代码(这只是一个例子,而不是我的真实脚本) #-*-coding:utf-8-*- import socket import sys class stdout_(): def __init__(self, sock_resp):
0 2023-09-29
编程技术问答社区
python中的文件到套接字适配器
我想使用串行端口). ) 然而,asyncio在Windows 期望可读的对象是ecockets . 是否可以编写一个适配器类,将类似文件的对象与插座的API包装,以便我可以使用stdin和asyncio>? 的串行端口 如果是这样,请给您一个例子,因为我以前从未使用过插座? 解决方案 简短答案 否,也许是. 长答案 您不能仅仅将类似文件的对象作为套接字或反之亦然,并期望它起作用. asyncio正在使用引擎盖下的系统调用来执行其异步魔法,而stdin是stdin从系统的角度来看,您没有包装它.使用默认SelectorEventLoop时,它使用 select select like System Call .在Windows上,它使用 select select 系统调用不是支持插座. so,select在窗户上很烂.还有其他选择吗?是的.在Windows和Windows上,还有另一种用于执行称为IOCP (I/O Completion P
0 2023-09-29
编程技术问答社区
C-使用轮询在套接字和stdin之间复用-服务器
我正在编写客户端服务器应用程序,并且我正在使用民意调查来在几个客户端插座和stdin之间进行多种多样,我可以在其中插入命令(例如:停止服务器).我相信我的代码的结构("逻辑")是正确的,但是它并不是我期望的方式: struct pollfd pfd[NSERVER]; //defined as 10 pfd[0].fd = fileno(stdin); pfd[0].events = POLLIN; pfd[1].fd = socktfd; //server bind, listen socket pfd[1].events = POLLIN; struct sockaddr_storage remoteaddr; // client address socklen_t addrlen; char remoteIP[INET6_ADDRSTRLEN]; addrlen = sizeof remoteaddr; char buf[1024]; // buffer int po
0 2023-09-29
编程技术问答社区
使用select从socket和stdin读取信息
我正在编写基于Ncurses的聊天程序.起初,我只是写了网络的内容(没有Ncurses),一切都很好,但是添加了图形后,我无法使客户端应用程序正常工作. 主要问题是同时从stdin和插座读取.在ncurses的版本中,我使用了pthread,它像魅力一样起作用. las,看来Pthread和ncurses并不能很好地融合在一起,因此我必须找到另一个解决方案. 我以为Select()会这样做,但是它仍然只从stdin读取并完全忽略了插座. 这是整个代码:代码 有趣的部分是: char message[1024]; fd_set master; fd_set read_fds; FD_ZERO(&master); FD_ZERO(&read_fds); FD_SET(0,&master); FD_SET(s,&master); // s is a socket descriptor while(true){ read_fds = master; if (selec
0 2023-09-29
编程技术问答社区
C select()超时 STDIN单字符(无回车)。
我希望能够使用select()来从stdin中输入单个字符(no enter). 因此,当用户按单个键时,select()应立即返回,不等待用户击中Enter. int main(void) { fd_set rfds; struct timeval tv; int retval; /* Watch stdin (fd 0) to see when it has input. */ FD_ZERO(&rfds); FD_SET(0, &rfds); /* Wait up to 2 seconds. */ tv.tv_sec = 2; tv.tv_usec = 0; retval = select(1, &rfds, NULL, NULL, &tv); if (retval == -1) perror("select()"); else if (retval)
0 2023-09-29
编程技术问答社区
用php套接字编程操作打印机
如何仅使用套接字程序操作打印机. 当我尝试杯子时,ipp使用PHP和Windows中的Printer_open功能 但是我担心的不是依赖Linux,Window等平台等. 它应该独立于平台. 下面是为打印机创建套接字的代码. 代码没有优化,但正在成功打印文本. 唯一的问题是我无法检查打印作业状态.
0 2023-09-29
编程技术问答社区
为什么我在Java线程的Socket连接中看到这种奇怪的输出?
所以我有一个小代码: public class MyCounterClass { private static int counter = 0; synchronized public static int getCounter(){ return counter++; } } 这是服务器: public class MyServer implements Runnable{ public static void go() throws IOException { System.out.println("MyServer: Go called..."); ServerSocket serverSocket = new ServerSocket(5000); while(true){ Socket socket = serverSocket.accep
0 2023-09-29
编程技术问答社区
asp.net core with signalR <-> static socket
用例: 我有一个带有信号核心的ASP.NET核心Web应用程序. :) 问题: 我必须从套接字连接[通过System.net.sockets](带有套接字通信的机器)接收消息 是否有任何方法可以将套接字客户端集成到Web应用中(也许是Progamm.cs或startup.cs?) 以及如何访问SignalR以将接收到的消息转发到SignalR Hub? thx 解决方案 我建议您阅读: https://learn.microsoft.com/en-us/aspnet/signalr/signalr/overview/getting-started/tutorial-server-server-server-server-server-server-broadcast-with-signalr /p> 我在这里向您展示了一个小样本,您可以适应您的应用程序.您必须从自己的套接字通信中订阅消息,然后可以将此消息转发给已连接的客户. 这是一个小样本,如何将时间从
2 2023-09-29
编程技术问答社区
关闭套接字导致TIME_WAIT等待状态
我正在使用套接字客户端/服务器面对某些问题. 在我的插座流中,我发送响应后,我在服务器侧关闭: private static void Send(Socket handler, String data) { try { // Convert the string data to byte data using ASCII encoding. byte[] byteData = Encoding.ASCII.GetBytes(data); // Begin sending the data to the remote device. handler.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), handler); } catch { } } private static vo
0 2023-09-28
编程技术问答社区
HAProxy不启动,无法绑定UNIX套接字[/run/haproxy/admin.sock]
我正在尝试使用"空"配置文件启动Haproxy(1.5.8 2014/10/31),我得到: user@server:~$ sudo service haproxy start [....] Starting haproxy: haproxy[ALERT] 126/120540 (7363) : Starting frontend GLOBAL: cannot bind UNIX socket [/run/haproxy/admin.sock] Altough已启用: user@server:~$ cat /etc/default/haproxy # Set ENABLED to 1 if you want the init script to start haproxy. ENABLED=1 配置文件: global log /dev/log local0 log /dev/log local1 notice chroot
0 2023-09-28
编程技术问答社区
官方原因��软件导致的连接中止:套接字写入错误��
给定此堆栈跟踪片段 由:java.net.socketexception: 软件导致连接中止: 插座写错误 at java.net.socketoutputstream.socketWrite0(本机 方法) 我试图回答以下问题: 什么代码抛出了此例外? (jvm?/tomcat?/我的代码?) 是什么原因导致这种例外? 关于#1: Sun的JVM源不包含此确切的消息,但我认为文本软件导致连接流产:套接字写入错误来自SocketOutputStream的本机实现: private native void socketWrite0(FileDescriptor fd, byte[] b, int off, int len) throws IOException; 关于#2 我的猜测是在客户终止连接之前是在获取完整响应之前引起的(例如,发送了一个请求,但是在获得完整响应之前,它已关闭/终止/离线) 问题
0 2023-09-28
编程技术问答社区
如何使用带有证书的Apache Commons SSLServer / SSLClient
我找到了许多自签名X.509证书的示例,但是自从我们从CA(Godaddy)购买了证书以来,我很难与Java一起使用.我在服务器上安装了密钥和证书文件,这是我到目前为止所拥有的: 服务器代码: public class SSLTestServer { public static void main(String[] args) throws GeneralSecurityException, IOException { SSLServer sslServer = new SSLServer(); sslServer.setKeyMaterial(new KeyMaterial("path/to/certificate.crt", "path/to/private-key.key", "changeit".toCharArray())); //sslServer.setCheckHostname(false);
0 2023-09-28
编程技术问答社区
OpenSSL::X509::Certificate显示错误的域的证书
我正在循环浏览域列表,以查看a)是否有443个侦听器,b)收集SSL证书有效期,签名算法和通用名称.所有具有443个侦听器的域报告了正确的SSL证书(与Chrome报告的内容相匹配),但是,有一个域不能正确地报告-MyProair.com,它报告了Parkinsonsed.com的证书 - 任何想法? # ssl cert lookup begin timeout(1) do tcp_client = TCPSocket.new("#{instance["domain"]}", 443) ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client) ssl_client.connect cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert) ssl_client.sysclose tcp
0 2023-09-28
编程技术问答社区
C# SSL安全套接字
我有一个用C#编写的良好的,有效的沟通应用程序.现在,我需要实现与服务器的安全连接.我已经尝试将套接字和TCPCLIENT对象更改为SSLSLSTREAM,但是我遇到了一些错误. 首先,我使用makecert生成了.cer证书. OpenSSL证书对我没有工作,因为它们不包括私钥.接下来,我在服务器上创建了一个证书对象,并将其绑定到SSLSTREAM: X509Certificate serverCertificate = X509Certificate.CreateFromCertFile("ca.cer"); TcpClient clientSocket = this.tcpListener.AcceptTcpClient(); SslStream ssls = new SslStream(clientSocket.GetStream(), false); ssls.AuthenticateAsServer(serverCertificate, false, SslPro
0 2023-09-28
编程技术问答社区
验证SSL证书#39;Java中的通用名称
我正在向服务器上的端口12345打开一个安全的SSL套接字.我目前正在使用自签名的证书.我将证书安装到服务器密钥库和客户端信托店中;好,等等,等等. 我正在建立此示例: http:http://www. exppledepot.com/egs/javax.net.ssl/client.html 客户端正确验证服务器是否具有签名证书.客户端似乎没有验证证书CN(通用名称)显示的与我连接到的服务器的主机名相匹配.显然,如果没有要求与请求的域匹配签名证书并不难. 当我安装证书(使用Keytool -Import)时,我是否将其作为根级证书安装?我需要使用第一张证书的主键签署第二个证书吗?为什么信任管理员不验证通用名称? 我希望这很有意义,而且我不会过度思考整个事情. 谢谢! 更新:看来Java SSL可能需要手动验证证书? ( 解决方案 验证主机名取决于应用程序.它是通过HttpsURLConnection和HostnameVerifier类内置到Java
0 2023-09-28
编程技术问答社区
如何在 Ruby 中建立启用 SSL 的 TCP/IP 连接
我需要与我需要访问的SSL端口的服务器建立TCP连接. 我需要发送XML文件并从服务器获取响应. 在启用SSL之前,我能够使用下面提到的代码从服务器获取数据. require 'socket' myXML = 'test_xml' host = 'myhost.com' port = 12482 socket = TCPSocket.open(host,port) # Connect to server socket.send(myXML, 0) response = socket.recvfrom(port) puts response socket.close 现在,我有一个" certi.pfx",我需要建立连接,发送my_xml数据并获取响应.如何完成. 我也想知道我是否有" PEM"和"密钥"文件,如何建立连接,发送my_xml数据并获取响应. 请帮助. 解决方案 require 'sock
0 2023-09-28
编程技术问答社区
客户和服务器通信使用C/C ++,SSL协议不起作用
我正在尝试使用SSL客户端/服务器示例:我在教程之后创建了我的证书 https://help.ubuntu.com/community/community/openssl .. 这是我的客户端代码: // SSL-Client.c #include #include #include #include #include #include #include #include #include #include #define FAIL -1 //Added the LoadCertificates how in the server-side makes. void LoadCertificates(SSL_CTX
0 2023-09-28
编程技术问答社区