Swift में नेटवर्क प्रोग्रामिंग: सॉकेट से WebSocket तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में नेटवर्क प्रोग्रामिंग: सरल से जटिल तक

\n\n

जब आप पहली बार Xcode खोलते हैं और एक खाली प्रोजेक्ट देखते हैं, तो ऐसा लगता है कि नेटवर्क संचार के वास्तविक जादू तक पहुंचना अभी बाकी है। लेकिन मेरा विश्वास करें: Swift में नेटवर्क प्रोग्रामिंग कोई rocket science नहीं है, बल्कि एक पूरी तरह से मूर्त उपकरण है जो एक स्थानीय एप्लिकेशन को वैश्विक इंटरनेट का हिस्सा बनाता है। आज हम समझेंगे कि अपने एप्लिकेशन को सर्वर से "बात" कैसे कराएं, डेटा का आदान-प्रदान कैसे करें और इसे खूबसूरती से करें।

\n\n

मैं आपको केवल शुष्क परिभाषाएं नहीं दिखाऊंगा, बल्कि iOS डेवलपर के जीवन के वास्तविक परिदृश्य दिखाऊंगा। आप जानेंगे कि Swift नेटवर्क संचार निम्न स्तर (सॉकेट) और उच्च स्तर (URLSession) पर कैसे काम करता है। और अंत में - एक बोनस: लाइव-चैट के लिए WebSocket कैसे कनेक्ट करें। चलिए शुरू करते हैं!

\n\n

मूल बातें समझना: Swift की दुनिया में नेटवर्क कैसे काम करते हैं

\n\n

कोड लिखने से पहले, आइए अवधारणाओं को समझें। Swift में नेटवर्क प्रोग्रामिंग उन्हीं सिद्धांतों पर आधारित है जो किसी भी अन्य भाषा में होते हैं: क्लाइंट-सर्वर आर्किटेक्चर, TCP/UDP प्रोटोकॉल, IP पते और पोर्ट। लेकिन एक बारीकियां है - Apple का इकोसिस्टम अपने स्वयं के फ्रेमवर्क प्रदान करता है जो डेवलपर के जीवन को आसान बनाते हैं।

\n\n

Swift में नेटवर्क के साथ काम करने के लिए प्रमुख प्रौद्योगिकियां

\n\n
    \n
  • URLSession - HTTP/HTTPS अनुरोधों के लिए मुख्य उपकरण। REST API, फ़ाइल अपलोड, बैकग्राउंड कार्यों के साथ काम करता है।
  • \n
  • Network.framework - सॉकेट, TCP/UDP तक निम्न-स्तरीय पहुंच। iOS 12 में दिखाई दिया, पुराने CFNetwork को बदल दिया।
  • \n
  • WebSocket (URLSessionWebSocketTask) - वास्तविक समय में द्विदिश संचार के लिए।
  • \n
  • CFStream - डेटा स्ट्रीम के साथ काम करने का पुराना, लेकिन अभी भी चालू तरीका।
  • \n
\n\n

व्यक्तिगत रूप से, मैं URLSession से शुरुआत करने की सलाह देता हूं - यह ऑटोमैटिक ट्रांसमिशन वाली कार चलाने जैसा है। और जब आप "मैनुअल" चाहते हैं - तो Network.framework पर जाएं।

\n\n

URLSession: Swift नेटवर्क प्रोग्रामिंग में आपका मुख्य मित्र

\n\n

सबसे लोकप्रिय उपकरण से शुरू करते हैं। URLSession Swift नेटवर्क पर डेटा भेजने और प्राप्त करने के लिए एक शक्तिशाली फ्रेमवर्क है। यह कैशिंग, प्रमाणीकरण, बैकग्राउंड डाउनलोड और बहुत कुछ का समर्थन करता है।

\n\n

बेसिक GET अनुरोध

\n\n

कल्पना करें कि आपके एप्लिकेशन को सर्वर से उपयोगकर्ताओं की सूची दिखानी है। यह इस प्रकार किया जाता है:

\n\n
import Foundation\n\n// 1. URL बनाएं\nguard let url = URL(string: "https://jsonplaceholder.typicode.com/users") else {\n    fatalError("Invalid URL")\n}\n\n// 2. कार्य बनाएं\nlet task = URLSession.shared.dataTask(with: url) { data, response, error in\n    // 3. त्रुटियों को संभालें\n    if let error = error {\n        print("त्रुटि: \\(error.localizedDescription)")\n        return\n    }\n    \n    // 4. सर्वर प्रतिक्रिया जांचें\n    guard let httpResponse = response as? HTTPURLResponse,\n          (200...299).contains(httpResponse.statusCode) else {\n        print("गलत स्थिति कोड")\n        return\n    }\n    \n    // 5. डेटा के साथ काम करें\n    if let data = data {\n        do {\n            let users = try JSONDecoder().decode([User].self, from: data)\n            print("\\(users.count) उपयोगकर्ता प्राप्त हुए")\n        } catch {\n            print("पार्सिंग त्रुटि: \\(error)")\n        }\n    }\n}\n\n// 6. कार्य शुरू करें\ntask.resume()
\n\n

ध्यान दें: task.resume() अनिवार्य है! अन्यथा अनुरोध कभी निष्पादित नहीं होगा। Swift में नेटवर्क प्रोग्रामिंग में शुरुआती लोगों की यह एक सामान्य गलती है।

\n\n

बॉडी के साथ POST अनुरोध

\n\n

अब सर्वर पर डेटा भेजते हैं:

\n\n
func createUser(name: String, email: String) {\n    guard let url = URL(string: "https://jsonplaceholder.typicode.com/users") else {\n        return\n    }\n    \n    var request = URLRequest(url: url)\n    request.httpMethod = "POST"\n    request.setValue("application/json", forHTTPHeaderField: "Content-Type")\n    \n    let body                

ब्लॉग

पुस्तक अनुशंसाएँ