【问题标题】:Sending commands to server using Poco library使用 Poco 库向服务器发送命令
【发布时间】:2020-01-16 20:40:39
【问题描述】:

我是套接字编程的新手。我正在使用 Poco 库。我在网上找到了这个例子。 (https://pocoproject.org/slides/200-Network.pdf)

#include "Poco/Net/SocketAddress.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketStream.h"
#include "Poco/StreamCopier.h"
#include <iostream>
int main(int argc, char** argv)
{
Poco::Net::SocketAddress sa("www.appinf.com", 80);
Poco::Net::StreamSocket socket(sa)
Poco::Net::SocketStream str(socket);
str << "GET / HTTP/1.1\r\n"
 "Host: www.appinf.com\r\n"
 "\r\n";
str.flush();
Poco::StreamCopier::copyStream(str, std::cout);
return 0;
}

我知道创建了一个套接字流。 我无法理解命令。 “/”在“GET”之后做什么或“1.1”是什么。请务必解释该特定行的含义。 这段代码确实给了我一个输出。但是这些命令是如何工作的?有没有办法从控制台发出命令?谢谢。

【问题讨论】:

  • 发送到服务器的消息内容特定于服务器期望接收的内容。如果您连接到邮件服务器,则内容会有所不同,因为它们符合 SMTP 协议,但此特定内容是您与接受 HTTP 协议 1.1 版的 Web 服务器通信的方式。

标签: c++ sockets poco-libraries


【解决方案1】:

我不确定你想在这里做什么。

您是否尝试使用 HTTP?

如果没有,请编写您自己的文本,但不要使用端口 80,因为这是众所周知的 http 端口。

如果您只想通过 TCP 套接字发送您键入的任何内容,那么您可能可以使用StreamCopier 将所有内容从std::cin 发送到str

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2018-01-03
    相关资源
    最近更新 更多