mirror of
				https://github.com/Show-maket/EthernetMaket.git
				synced 2025-10-31 02:42:44 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			main
			...
			todo-Rewor
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b883d3a757 | 
| @ -12,117 +12,103 @@ void EthernetMaketServer::resetServerHandler() | |||||||
|     serverHandler = [](EthernetMaketClient &sclient) {}; |     serverHandler = [](EthernetMaketClient &sclient) {}; | ||||||
| } | } | ||||||
|  |  | ||||||
| // EthernetMaketClient EthernetMaketServer::available(int sock) | EthernetMaketClient EthernetMaketServer::available(int sock) | ||||||
| // { | { | ||||||
| //     accept(sock); |     accept(sock); | ||||||
| //     EthernetClient client(sock); |     EthernetClient client(sock); | ||||||
| //     if (EthernetClass::_server_port[sock] == _port && |     if (EthernetClass::_server_port[sock] == _port && | ||||||
| //         (client.status() == SnSR::ESTABLISHED || |         (client.status() == SnSR::ESTABLISHED || | ||||||
| //          client.status() == SnSR::CLOSE_WAIT)) |          client.status() == SnSR::CLOSE_WAIT)) | ||||||
| //     { |     { | ||||||
| //         if (client.available()) |         if (client.available()) | ||||||
| //         { |         { | ||||||
| //             return std::move(EthernetMaketClient(client)); |             return std::move(EthernetMaketClient(client)); | ||||||
| //         } |         } | ||||||
| //     } |     } | ||||||
| //     return std::move(EthernetMaketClient(MAX_SOCK_NUM)); |     return std::move(EthernetMaketClient(MAX_SOCK_NUM)); | ||||||
| // } | } | ||||||
|  |  | ||||||
| // void EthernetMaketServer::accept(int sock) | void EthernetMaketServer::accept(int sock) | ||||||
| // { | { | ||||||
| //     int listening = 0; |     int listening = 0; | ||||||
| //     EthernetClient client(sock); |     EthernetClient client(sock); | ||||||
|  |  | ||||||
| //     if (EthernetClass::_server_port[sock] == _port) |     if (EthernetClass::_server_port[sock] == _port) | ||||||
| //     { |     { | ||||||
| //         if (client.status() == SnSR::LISTEN) |         if (client.status() == SnSR::LISTEN) | ||||||
| //         { |         { | ||||||
| //             listening = 1; |             listening = 1; | ||||||
| //         } |         } | ||||||
| //         else if (client.status() == SnSR::CLOSE_WAIT && !client.available()) |         else if (client.status() == SnSR::CLOSE_WAIT && !client.available()) | ||||||
| //         { |         { | ||||||
| //             Serial.println("HARD STOP"); |             Serial.println("HARD STOP"); | ||||||
| //             client.stop(); |             client.stop(); | ||||||
| //         } |         } | ||||||
| //     } |     } | ||||||
|  |  | ||||||
| //     if (!listening) |     if (!listening) | ||||||
| //     { |     { | ||||||
| //         // begin(); |         begin(); | ||||||
| //         begin(sock); // added |         // begin(sock); // added | ||||||
| //     } |     } | ||||||
| // } | } | ||||||
|  |  | ||||||
| // void EthernetMaketServer::begin(int sock) | void EthernetMaketServer::begin(int sock) | ||||||
| // { | { | ||||||
| //     EthernetClient client(sock); |     EthernetClient client(sock); | ||||||
| //     if (client.status() == SnSR::CLOSED) |     if (client.status() == SnSR::CLOSED) | ||||||
| //     { |     { | ||||||
| //         socket(sock, SnMR::TCP, _port, 0); |         socket(sock, SnMR::TCP, _port, 0); | ||||||
| //         listen(sock); |         listen(sock); | ||||||
| //         EthernetClass::_server_port[sock] = _port; |         EthernetClass::_server_port[sock] = _port; | ||||||
| //         serverSocket = sock;  |         serverSocket = sock;  | ||||||
| //         return; |         return; | ||||||
| //     }  |     }  | ||||||
| //     // Serial.println(F("EthernetMaketServer::begin() FAIL")); |     // Serial.println(F("EthernetMaketServer::begin() FAIL")); | ||||||
| // } | } | ||||||
|  |  | ||||||
|  | void EthernetMaketServer::begin() | ||||||
|  | { | ||||||
|  |     for (int sock = 0; sock < MAX_SOCK_NUM; sock++) { | ||||||
|  |     EthernetClient client(sock); | ||||||
|  |     if (client.status() == SnSR::CLOSED) { | ||||||
|  |         socket(sock, SnMR::TCP, _port, 0); | ||||||
|  |         listen(sock); | ||||||
|  |         EthernetClass::_server_port[sock] = _port; | ||||||
|  |         serverSocket = sock; | ||||||
|  |         break; | ||||||
|  |         } | ||||||
|  |     }  | ||||||
|  |     // Serial.println(F("EthernetMaketServer::begin() FAIL")); | ||||||
|  | } | ||||||
|  |  | ||||||
| // void EthernetMaketServer::begin() |  | ||||||
| // { |  | ||||||
| //     for (int sock = 0; sock < MAX_SOCK_NUM; sock++) { |  | ||||||
| //     EthernetClient client(sock); |  | ||||||
| //     if (client.status() == SnSR::CLOSED) { |  | ||||||
| //         socket(sock, SnMR::TCP, _port, 0); |  | ||||||
| //         listen(sock); |  | ||||||
| //         EthernetClass::_server_port[sock] = _port; |  | ||||||
| //         serverSocket = sock; |  | ||||||
| //         break; |  | ||||||
| //         } |  | ||||||
| //     }  |  | ||||||
| //     // Serial.println(F("EthernetMaketServer::begin() FAIL")); |  | ||||||
| // } |  | ||||||
| uint8_t buf[256]; |  | ||||||
| void EthernetMaketServer::tick() | void EthernetMaketServer::tick() | ||||||
| { | { | ||||||
|     // for (int sock = 0; sock < MAX_SOCK_NUM; sock++) |     // for (int sock = 0; sock < MAX_SOCK_NUM; sock++) | ||||||
|     { |     { | ||||||
|         EthernetClient sclient = available(/* serverSocket */); |         sclient = available(serverSocket); | ||||||
|         size_t dataSize; |         if (sclient.connected() && sclient.available() > 0) | ||||||
|         if (sclient.connected() && (dataSize = sclient.available()) > 0) |  | ||||||
|         { |         { | ||||||
|             Serial.println("Receive!"); |             sclient.activityUpdate(); | ||||||
|  |             serverHandler(sclient); | ||||||
|             memset(buf,0x00,sizeof(buf)); |  | ||||||
|             sclient.read(buf, sizeof(buf)); |  | ||||||
|  |  | ||||||
|             Serial.print("Received data: "); |  | ||||||
|             for (int i = 0; i < dataSize; i++) |  | ||||||
|             { |  | ||||||
|                 Serial.print(buf[i], HEX); |  | ||||||
|                 Serial.print(" "); |  | ||||||
|             } |  | ||||||
|             Serial.println("\n"); |  | ||||||
|  |  | ||||||
|             // sclient.activityUpdate(); |  | ||||||
|             //* serverHandler(sclient); |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|         // if (!wasConnected && sclient.connected()) |         if (!wasConnected && sclient.connected()) | ||||||
|         // { |         { | ||||||
|         //     wasConnected = true; |             wasConnected = true; | ||||||
|         //     Serial.println("Client connected"); |             Serial.println("Client connected"); | ||||||
|         // } |         } | ||||||
|  |  | ||||||
|         // if (wasConnected && !sclient.connected()) |         if (wasConnected && !sclient.connected()) | ||||||
|         // { |         { | ||||||
|         //     wasConnected = false; |             wasConnected = false; | ||||||
|         //     sclient.stop(); |             sclient.stop(); | ||||||
|         //     // begin(serverSocket); |             // begin(serverSocket); | ||||||
|         //     Serial.println("Client disconnected"); |             Serial.println("Client disconnected"); | ||||||
|         // } |         } | ||||||
|         // // Закрытие соединения по таймеру неактивности |         // // Закрытие соединения по таймеру неактивности | ||||||
|         // if (sclient.connected() && (millis() - lastActivityTime > timeout)) |         // if (sclient.connected() && (millis() - lastActivityTime > timeout)) | ||||||
|         // { |         // { | ||||||
| @ -131,5 +117,5 @@ void EthernetMaketServer::tick() | |||||||
|         //     // begin(serverSocket); |         //     // begin(serverSocket); | ||||||
|         // } |         // } | ||||||
|     } |     } | ||||||
|     // sclient.tick_(); |     sclient.tick_(); | ||||||
| } | } | ||||||
|  | |||||||
| @ -8,8 +8,8 @@ class EthernetMaketClient; | |||||||
| class EthernetMaketServer : public EthernetServer | class EthernetMaketServer : public EthernetServer | ||||||
| { | { | ||||||
| private: | private: | ||||||
|     // EthernetClient available(); |     EthernetClient available(); | ||||||
|     // void accept(int sock); |     void accept(int sock); | ||||||
|     std::function<void(EthernetMaketClient&)> serverHandler = [](EthernetMaketClient &sclient) {}; |     std::function<void(EthernetMaketClient&)> serverHandler = [](EthernetMaketClient &sclient) {}; | ||||||
|     SOCKET serverSocket = MAX_SOCK_NUM; |     SOCKET serverSocket = MAX_SOCK_NUM; | ||||||
|  |  | ||||||
| @ -18,12 +18,12 @@ private: | |||||||
|  |  | ||||||
| public: | public: | ||||||
|     using EthernetServer::EthernetServer; |     using EthernetServer::EthernetServer; | ||||||
|     // EthernetMaketClient available(int sock); |     EthernetMaketClient available(int sock); | ||||||
|  |  | ||||||
|     void setServerHandler(std::function<void(EthernetMaketClient)> handler); |     void setServerHandler(std::function<void(EthernetMaketClient)> handler); | ||||||
|     void resetServerHandler(); |     void resetServerHandler(); | ||||||
|     // void begin() override; |     void begin() override; | ||||||
|     // void begin(int sock); |     void begin(int sock); | ||||||
|     void tick(); |     void tick(); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user