का उपयोग करते समय अनुरोध के आधार पर सशर्त रूप से प्रतिक्रिया कैसे दें मैं केवल विंडोज बैच स्क्रिप्टिंग का उपयोग कर एक वेब सर्वर स्थापित करने की कोशिश कर रहा हूं।netcat
मेरे पास पहले से ही निम्न स्क्रिप्ट के साथ आते हैं:
@echo off
@setlocal enabledelayedexpansion
for /l %%a in (1,0,2) do (
type tempfile.txt | nc -w 1 -l -p 80 | findstr mystring
if !ERRORLEVEL! == 0 (
echo found > tempfile.txt
) else (
echo not-found > tempfile.txt
)
)
हालांकि, प्रतिक्रिया हमेशा एक अनुरोध के पीछे है, मेरा मतलब है, अगर मैं ब्राउज़र में कुछ इस तरह टाइप करें:
REQUEST: localhost/mystring
RESPONSE: not-found
केवल अगले अनुरोध में मैं corr प्राप्त होगा:
मैं निम्नलिखित प्रतिसाद मिलेगा उपरोक्त अनुरोध के लिए ect उत्तर।
ऐसा इसलिए हो रहा है क्योंकि जैसे ही नेटकैट अनुरोध प्राप्त करता है, यह tempfile.txt की वर्तमान सामग्री के साथ प्रतिक्रिया देता है जिसे अभी तक अनुरोध के आधार पर अपडेट नहीं किया गया है।
क्या tempfile.txt अद्यतन होने तक प्रतिक्रिया को अवरुद्ध करने का कोई तरीका है या कोई अन्य तरीका जो अपेक्षित परिणाम पूरा करता है?
आप 'tempfile की सामग्री को अधिलेखित कर रहे हैं
exec.bat (कुछ छद्म कोड) की तरह कुछ हो सकता है .txt' या तो "पाया" या "नहीं मिला" स्ट्रिंग के साथ; आपका कोड बिल्कुल काम नहीं करना चाहिए। – SomethingDark
@ SomethingDark मुझे विश्वास है कि जानबूझकर था। वे लॉग होने का इरादा नहीं रखते हैं। वे HTTP सामग्री रखने के लिए हैं। क्या ओपी पूछ रहा है कि ब्राउजर के अनुरोध हेडर सामग्री के आधार पर 'एनसी' टीसीपी आउटपुट सशर्त बनाने के लिए कैसे है। – rojo
@rojo - वह एक फाइल को ओवरराइट कर रहा है कि वह नेटकैट पर पाइप कर रहा है। नेटकैट उल्टी त्रुटियों को बाएं और दाएं होना चाहिए। – SomethingDark