本文整理汇总了C++中ServerSocket::readLine方法的典型用法代码示例。如果您正苦于以下问题:C++ ServerSocket::readLine方法的具体用法?C++ ServerSocket::readLine怎么用?C++ ServerSocket::readLine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ServerSocket
的用法示例。
在下文中一共展示了ServerSocket::readLine方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleConnection
void IncomingProxy::handleConnection(ServerSocket &connection) {
try {
string requestLine = connection.readLine();
requestLine = util::cleanupRequestLine(requestLine);
string header = requestLine + "Connection: close\r\n";
//Read header
while (true) {
string s = connection.readLine();
if (s.find("Connection") == 0) continue;
header += s;
if (s == "\n" or s == "\r\n") break;
}
map<string, string> headers = util::extractHeaders(header);
//Be careful, the requestLine is modified when calling findHost.
//That is the intended behaviour.
pair<string, int> newHost = findHost(requestLine);
cout << "# [Incoming] '" << util::removeTrailingLineBreaks(requestLine)
<< "' at " << newHost.first << ":" << newHost.second << endl;
headers["Host"] = newHost.first;
header = requestLine + util::assembleHeaders(headers);
ClientSocket webserver(newHost.first, newHost.second);
webserver << header;
cout << header;
Socket::relay_connection(connection, webserver);
webserver.~ClientSocket();
connection.~ServerSocket();
}
catch (SocketException& e) {
cout << "# [Incoming] Exception: " << e.description() << endl;
}
catch (char * s){
cout << "# [Incoming] Exception: " << s << endl;
}
}