本文整理汇总了C++中EthernetClient类的典型用法代码示例。如果您正苦于以下问题:C++ EthernetClient类的具体用法?C++ EthernetClient怎么用?C++ EthernetClient使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了EthernetClient类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: extract_status_code
static void
extract_status_code(struct HTTPObject *h, EthernetClient client){
unsigned int k,multiplier,j;
j=0;
char c;
const byte STATUS_CODE_START_INDEX = 9;
const byte STATUS_CODE_END_INDEX = 11;
while(j<=STATUS_CODE_END_INDEX && client.connected()){
if(client.available()){
// We want to extract the 200 from "HTTP/1.1 200 OK". The
// status code starts at index 9 in the string and ends at 11
c = client.read();
if(j<STATUS_CODE_START_INDEX){
j++;
}
else if(j>=STATUS_CODE_START_INDEX && j<=STATUS_CODE_END_INDEX){
// code = 10^2 * str[9] + 10^1 * str[10] + 10^0 * str[11]
// Do ghetto exponentiation here.
multiplier = 1;
for(k = 1; k <= 2 - (j - STATUS_CODE_START_INDEX); k++){
multiplier *= 10;
}
// c - '0' => char to int
h->statusCode += (c - '0') * multiplier;
j++;
}
}
}
}
示例2: loop
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
// we get a request
if (client) {
Serial.println(F("Client connected"));
// an http request ends with a blank line
boolean done = false;
while (client.connected() && !done) {
while (client.available () > 0 && !done) {
done = processIncomingByte (client.read ());
}
} // end of while client connected
// get ROV status values as json string
String rovStatus = getRovStatus();
// send a standard http response header
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/json"));
client.println(F("Connection: close")); // close after completion of the response
client.println(); // end of HTTP header
client.println(rovStatus);
// give the web browser time to receive the data
delay(10);
// close the connection:
client.stop();
Serial.println(F("Client disconnected"));
} // end of got a new client
} // end of loop
示例3: read
void MyClientManager::read(EthernetClient client)
{
int data_size = client.available();
int x = 0;
if (headeroffset != 3 && data_size + headeroffset >= HEADER_SIZE)
{
while (headeroffset != HEADER_SIZE && x < data_size)
{
header[headeroffset] = client.read();
++headeroffset;
++x;
}
if (headeroffset == 3 && header[2] + 1 > BUFFER_SIZE)
reset();
}
else if (headeroffset == 3 && bufferoffset != header[2] && data_size + bufferoffset >= header[2])
{
while (bufferoffset != header[2] && x < data_size)
{
buffer[bufferoffset] = client.read();
++bufferoffset;
++x;
}
}
else if (headeroffset == 3 && bufferoffset == header[2] && !checksumisset && data_size > 0)
{
checksum = client.read();
checksumisset = true;
}
}
示例4: receiveEthernet
void MorpheusSlave::receiveEthernet(EthernetClient& incoming) {
if ( incoming.available() ) {
char b;
while ( incoming.available() > 0 ) {
_lastRX = millis();
b = incoming.read();
#if DBG
Serial.print("B: ");
Serial.println(b);
#endif
if ( b == '\n' ) {
endComm();
break;
}
else if ( command == NULL ) {
command = b;
data = "";
}
else {
data += b;
}
}
}
if ( _lastRX != -1 && millis() - _lastRX > RX_TIMEOUT ) {
endComm();
}
}
示例5: parseRequest
bool PyrobarHTTPRequestHandler::parseRequest(EthernetClient client) {
if (client.available()) {
if(client.readStringUntil(' ') == "GET") {
if(client.read() == '/') {
String dataType = client.readStringUntil('/');
if (DEBUG_REQUEST_HANDLER) {
Serial.print("Data Type: ");
Serial.println(dataType);
}
if(dataType == pyrobarDataTypeBuffer) {
return handleBuffer(client);
} else if(dataType == pyrobarDataTypeFire) {
return handleFireSequence(client);
} else if(dataType == pyrobarDataTypeScalar) {
return handleScalar(client);
} else if(dataType == pyrobarDataTypeLights) {
return handleLightsOnOff(client);
} else {
return false;
}
}
} else {
return false;
}
}
}
示例6: createFile
// Fonction créant un fichier sur carte mémoire SD
// par X. HINAULT - www.mon-club-elec.fr - GPLv3 - 03/2013
void UtilsSDEthernet::createFile(EthernetClient clientIn, char* nomFichierIn, boolean debug) {
// La fonction reçoit :
// > le client Ethernet à utiliser
// > le nom du fichier au format 8.3
// > un drapeau d'affichage de messages de debug
// la fonction ne renvoie rien
// création nouveau fichier
File dataFile=SD.open(nomFichierIn, FILE_WRITE); // crée / ouvre un objet fichier et l'ouvre en mode écriture - NOM FICHIER en 8.3 ++++
// > soit en mode : FILE_WRITE: ouvre le fichier pour lecture et écriture, en démarrant au début du fichier.
// Important : Si le fichier est ouvert pour écriture, il sera créé si il n'existe pas déjà (cependant le chemin le contenant doit déjà exister)
clientIn.println("------");
if (dataFile){ // le fichier est True si créé
clientIn.println(F("Creation nouveau fichier OK"));
dataFile.print(""); // chaine vide
dataFile.close(); // fermeture du fichier obligatoire après accès
} // si fichier existe
else { // sinon = si probleme creation
clientIn.println(F("Probleme creation fichier"));
} // fin else datafile
} // fin fonction createFile
示例7: read
// Fonction affichant sur le port série le contenu d'un fichier sur carte mémoire SD
// par X. HINAULT - www.mon-club-elec.fr - GPLv3 - 03/2013
void UtilsSDEthernet::read(EthernetClient clientIn, char* nomFichierIn, boolean debug) {
// La fonction reçoit :
// > le client Ethernet à utiliser
// > le nom du fichier au format 8.3
// > un drapeau d'affichage de messages de debug
// la fonction ne renvoie rien
// lecture du contenu du fichier
File dataFile=SD.open(nomFichierIn, FILE_READ); // ouvre le fichier en lecture - NOM FICHIER en 8.3 ++++
// un seul fichier ne peut etre ouvert à la fois - fermer au préalable tout fichier déjà ouvert
clientIn.println(F("------"));
if (dataFile){ // le fichier est True si créé
if (debug) clientIn.println(F("Ouverture fichier OK"));
while (dataFile.available()) { // tant que des données sont disposnibles dans le fichier
// le fichier peut etre considéré comme un "buffer" de données comme le buffer du port série
char c = dataFile.read(); // lit le caractère suivant
clientIn.print(c); // affiche le caractère courant
//if (c==10) delay(10); // pause enttre 2 lignes
} // fin while available
dataFile.close(); // fermeture du fichier obligatoire après accès
} // si fichier True
else { // sinon = si probleme creation
clientIn.println(F("Probleme lecture fichier"));
} // fin else
} // fin fonction readSerial
示例8: network_send
size_t ArduinoiDigiInterfaceClass::network_send(idigi_network_handle_t *handle, char *buffer, size_t length)
{
EthernetClient *client = (EthernetClient *) handle;
AR_DEBUG_PRINTF("network_send: len = %d\r\n", length);
size_t sent = client->write((const uint8_t *) buffer, length);
return sent;
}
示例9: recordValue
void Nimbits::recordValue(double value, String pointId) {
EthernetClient client;
String json;
json = "{\"d\":\"";
json += floatToString(value, 4);
json += "\"}";
String content;
content += "&json=";
content += json;
content += "&id=";
content += pointId;
if (client.connect(_hostname.c_str(), _port)) {
doPost(client, VALUE_API, content);
String response = getFullResponse(client);
client.stop();
}
else {
client.stop();
}
}
示例10: network_recv
size_t ArduinoiDigiInterfaceClass::network_recv(idigi_network_handle_t *handle, int timeout_sec, char *buffer, size_t length)
{
EthernetClient *client = (EthernetClient *) handle;
// AR_DEBUG_PRINTF("network_recv: timeout_sec = %d\r\n", timeout_sec);
if (!client->available())
return 0;
return client->read((uint8_t *) buffer, length);
}
示例11: readStream
void Parser::readStream(EthernetClient client,char* myreadstring) {
char c = 0; //carctère de lecture
char tempo[255];
bool currentLineIsBlank = true;
int n = 1;
int flag = 0;
for (int k = 0; k < 50; k++) tempo[k] = 0;
c = client.read(); //lecture du premier caractère;
if (c != (-1)) {
if ( c == 'G') {
flag = 1;
tempo[0] = c;
while (c != '\n') {
c = client.read(); //lecture du caractère
delay(5);
tempo[n] = c;
delay(5);
n++;
}
}
else {
tempo[0] = '¤';
tempo[1] = '?';
while (client.available() > 0) {
c = client.read();
if (c == '\n' && currentLineIsBlank) {
while (c != '\r') { //doute
c = client.read(); //lecture du caractère
delay(5);
if (c == (-1))
break;
tempo[n + 1] = c;
delay(5);
n++;
}
}
else if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
}
if (!flag)n++;
for (int j = 0; j < n; j++)
myreadstring[j] = tempo[j] ;
}
示例12: writeAuthParamsToClient
void Nimbits::writeAuthParamsToClient(EthernetClient client)
{
client.print(F("email="));
client.print(_ownerEmail);
if (_accessKey.length() > 0)
{
client.print(F("&key="));
client.print(_accessKey);
}
}
示例13: extract_client_response
/*
* Read client response from an HTTP request into a buffer. Return the number of
* characters written to buf (EXCLUDING null character);
*/
void
extract_client_response(struct HTTPObject *h, EthernetClient client){
extract_status_code(h, client);
skip_http_headers(client);
extract_body(h, client);
// Clean up the connection
client.flush();
client.stop();
}
示例14: handleScalar
bool PyrobarHTTPRequestHandler::handleScalar(EthernetClient client) {
// E.g. /sclr/sndSens/0.789
String scalarType = client.readStringUntil('/');
if (DEBUG_REQUEST_HANDLER) {
Serial.print("Scalar type: ");
Serial.println(scalarType);
}
float value = client.readStringUntil(' ').toFloat();
return _lightMap->setScalar(scalarType, value);
}
示例15: getData
void getData(char *dst)
{
Serial.println("Trying to grab data from server:");
// from the server, read them and print them:
int i = 0;
while (!client.available());
while (client.available()) {
char c = client.read();
Serial.print(c);
if (i < 10)
{
dst[i] = c;
//dst[i+1] = 0;
}
i++;
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
while(true);
}
}