Netcat का उपयोग करके एक साधारण चैट कैसे बनाएं?


27

मैं वर्तमान में एक परियोजना पर काम कर रहा हूं और मैंने netcatपुस्तकालयों का उपयोग करके एक सरल चैट एप्लिकेशन लागू किया है।

क्लाइंट को पोर्ट नंबर और कमांड दर्ज करने के लिए कहा जाता है

nc -l -p xxxx

xxxxग्राहक द्वारा दर्ज किया गया पोर्ट नंबर कहां है।

इसी तरह, मेजबान को उसी पोर्ट नंबर के लिए संकेत दिया जाता है और कनेक्शन का उपयोग करके स्थापित किया जाता है

nc <ip_address> -p xxxx

हालाँकि, यह एक खाली चैट अनुभव देता है क्योंकि यह संदेश टाइप करने वाले व्यक्ति का उपयोगकर्ता नाम नहीं दिखाता है, कुछ ऐसा है

hey
hello
what's up
Nothing

इसके बजाय, मैं चाहता हूं कि यह कुछ ऐसा हो,

Foo : hey
Boo : hello
Foo : what's up
Boo : Nothing

क्या मैं netcatइस कार्यक्षमता को प्राप्त करने के लिए उपयोग कर सकता हूं या ऐसा कुछ और है जो ऐसा करता है?


1
ncज्ञात नहीं है usernameऔर इसे नहीं भेज सकते हैं। केवल प्रारूप में संदेश टाइप करना है Bob: hello
2707974

मैं उस सटीक बात से बचना चाहता हूं। मैं वैकल्पिक कार्यक्रमों के लिए भी खुला हूं जो समान कार्यक्षमता प्राप्त कर सकते हैं।
सचिन कामथ

जवाबों:


34

आप ऐसा कुछ कर सकते हैं।

मान लें कि ऐलिस सर्वर है। वह प्रकार:

mawk -W interactive '$0="Alice: "$0' | nc -l -p <port_number> <ip_of_alice>

फिर बॉब उस सर्वर से जुड़ जाता है। वह प्रकार:

mawk -W interactive '$0="Bob: "$0' | nc <ip_of_alice> <port_number>

mawkलाइनों बस "बातचीत" के लिए व्यक्ति की prepending नाम कहते हैं। हमें -W interactiveस्टडआउट को असंबद्ध लिखने की जरूरत है और स्टड से बफ़र किए गए रीड को लाइन करना है।


अब ऐलिस प्रकार Hi Bobऔर देखता है:

Hi Bob

बॉब देखता है:

Alice: Hi Bob

बॉब प्रकार Hi Aliceऔर देखता है:

Alice: Hi Bob
Hi Alice

ऐलिस देखता है:

Hi Bob
Bob: Hi Alice

2
nc एक ही समय में -s और -l का उपयोग नहीं कर सकता है। -s की आवश्यकता नहीं है।
सचिन कामथ

मेरे पास awk: विकल्प `-W इंटरैक्टिव’ अपरिचित, अनदेखा
zt1983811

@ zt1983811 आपको GNU की आवश्यकता है awk, नहीं mawk
अराजकता

@ आचोस I ने awk awk -W इंटरैक्टिव '$ 0 = "ऐलिस का उपयोग किया:" $ 0' | nc -lvk आईपी पोर्ट; ls -al / usr / bin / awk lrwxrwxrwx 1 रूट रूट 21 जून 27 06:48 / usr / bin / awk -> / etc / विकल्प / awk
zt1983811

1
@ zt1983811 यह एक mawkविकल्प है, नहीं gawk। क्या आपने mawkस्पष्ट रूप से इसका उपयोग करने की कोशिश की ?
मिठाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.