ServerSocket 抛出 InvalidArgumentException,但文档没有说明原因。为什么?
ServerSocket throws InvalidArgumentException, but docs don't specify why. Why?
我正在使用 Poco 创建网络服务器。我 运行 进入 ServerSocket 库的错误。这是重现错误的最少代码。
#include <iostream>
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
#define PORT (unsigned short) 3000
int main()
{
Poco::Net::ServerSocket x;
x.bind(PORT);
Poco::Net::StreamSocket conn;
Poco::Net::SocketAddress clientAddr;
try {
conn = x.acceptConnection(clientAddr);
}
catch (Poco::InvalidArgumentException e) {
printf("Oh no! %s\n", e.displayText().c_str());
return 1;
}
printf("Huzzah!");
return 0;
}
我试图查看 [文档] (https://pocoproject.org/docs/Poco.Net.ServerSocket.html#25093) 以了解错误,但它甚至没有将此函数列为抛出此错误。我也试过函数的无参数版本,它仍然抛出这个异常,(这表明它不是函数而是子函数抛出错误)。为什么?我该如何解决或解决它?
正如 WhozCraig 所说,问题不在于将其置于监听状态。代码应该是
#include <iostream>
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
#define PORT (unsigned short) 3000
int main()
{
Poco::Net::ServerSocket x;
x.bind(PORT);
x.listen(1); // or number of acceptable connections
Poco::Net::StreamSocket conn;
Poco::Net::SocketAddress clientAddr;
try {
conn = x.acceptConnection(clientAddr);
}
catch (const Poco::InvalidArgumentException& e) {
printf("Oh no! %s\n", e.displayText().c_str());
return 1;
}
printf("Huzzah!");
return 0;
}
我正在使用 Poco 创建网络服务器。我 运行 进入 ServerSocket 库的错误。这是重现错误的最少代码。
#include <iostream>
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
#define PORT (unsigned short) 3000
int main()
{
Poco::Net::ServerSocket x;
x.bind(PORT);
Poco::Net::StreamSocket conn;
Poco::Net::SocketAddress clientAddr;
try {
conn = x.acceptConnection(clientAddr);
}
catch (Poco::InvalidArgumentException e) {
printf("Oh no! %s\n", e.displayText().c_str());
return 1;
}
printf("Huzzah!");
return 0;
}
我试图查看 [文档] (https://pocoproject.org/docs/Poco.Net.ServerSocket.html#25093) 以了解错误,但它甚至没有将此函数列为抛出此错误。我也试过函数的无参数版本,它仍然抛出这个异常,(这表明它不是函数而是子函数抛出错误)。为什么?我该如何解决或解决它?
正如 WhozCraig 所说,问题不在于将其置于监听状态。代码应该是
#include <iostream>
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
#define PORT (unsigned short) 3000
int main()
{
Poco::Net::ServerSocket x;
x.bind(PORT);
x.listen(1); // or number of acceptable connections
Poco::Net::StreamSocket conn;
Poco::Net::SocketAddress clientAddr;
try {
conn = x.acceptConnection(clientAddr);
}
catch (const Poco::InvalidArgumentException& e) {
printf("Oh no! %s\n", e.displayText().c_str());
return 1;
}
printf("Huzzah!");
return 0;
}