मैं यूनिक्स कोडिंग के लिए बहुत नया हूं और कुछ सरल नेटवर्किंग परियोजनाओं पर काम करना चाहूंगा। मुझे कुछ ट्यूटोरियल मिले जो कि मैं देख रहा हूँ - विशेष रूप से यह: http://www.linuxhowtos.org/C_C++/socket.htm ।
मुझे पता चला है कि कैसे सर्वर और क्लाइंट सी फ़ाइलों को निष्पादनयोग्य में संकलित किया जाए, और मैं उन्हें टर्मिनल में इस तरह से चला सकता हूं:
open server
open client
जब से मैं मैक ओएस एक्स 10.7.5 का उपयोग कर रहा हूं। मेरी समस्या यह है कि जब मैं उन्हें प्रारंभ करता हूं तो मुझे इन कार्यक्रमों के लिए तर्क पारित करने की आवश्यकता होती है। ट्यूटोरियल इस कोड का उपयोग करता है:
server 51717
client clientName 51717
लेकिन मुझे अपने मैक टर्मिनल में इसे दोहराने का कोई तरीका नहीं मिला।
open server --args 51717 //doesn't work
मैंने इस पोस्ट को ढूंढा और इस कोड के साथ एक एप्सस्क्रिप्ट बनाया
do shell script "open -a /Desktop/server --args 51717"
लेकिन वह त्रुटियों का एक गुच्छा फेंकता है। मैंने कई बदलावों की कोशिश की, लेकिन चलाने के लिए कोई भी नहीं मिला। मुझे उस पोस्ट से काम करने का क्रोम उदाहरण भी नहीं मिला (मेरे पास एफएफ स्थापित नहीं है)।
मैं ट्यूटोरियल में प्रोग्राम के तर्क के रूप में एक साधारण पूर्णांक पोर्ट नंबर कैसे पास कर सकता हूं? क्या लिनक्स मशीन पर ऐसा करना आसान है? मुझे इस समय OS को स्विच करने में कोई समस्या नहीं है, और यह आदर्श होगा यदि मैं 'सर्वर 51717' सिंटैक्स का उपयोग कर सकता हूं जो कि ट्यूटोरियल प्रत्येक प्रोग्राम के लिए एक अलग रन स्क्रिप्ट बनाने के बजाय उपयोग करता है। एक जवाब और सलाह की तलाश में। धन्यवाद।
संपादित करें:
मैंने इसे सही तरीके से चलाने के लिए प्राप्त किया है, लेकिन अभी भी काम नहीं कर रहा है। मैं इस तरह से सर्वर शुरू करता हूं:
$ ./server 3456
फिर एक नया टर्मिनल खोलें और क्लाइंट को सीमित सफलता के साथ शुरू करें:
$ ./client mClient 3456
ERROR, no such host
$ ./client 127.0.0.1 3456
Please enter the message: //running correctly
//... this also works
$ ./client 127.1 3456
Please enter the message: //running correctly
मैं क्लाइंट को कुछ नंबर.नंबर संयोजन के साथ शुरू कर सकता हूं, लेकिन यह उन सभी के लिए काम नहीं करता है और मैं किसी भी पत्र का उपयोग नहीं कर सकता हूं। इनमें से केवल एक ही समाधान क्यों काम करता है?
उपाय:
$ sudo nano /private/etc/hosts
127.0.0.1 mClient
नीचे जोड़ें और फिर सेव करने के लिए Ctrl ^ o दबाएं
अब यह काम करता है:
$ ./client mClient 3456