Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन (सॉकेट) में निम्न-स्तरीय नेटवर्किंग इंटरफ़ेस

पायथन के मानक पुस्तकालय में 'सॉकेट' मॉड्यूल परिभाषित करता है कि ऑपरेटिंग सिस्टम के शीर्ष पर सॉकेट एंडपॉइंट का उपयोग करके सर्वर और क्लाइंट मशीन कैसे संचार कर सकते हैं। 'सॉकेट' एपीआई में कनेक्शन-उन्मुख और कनेक्शन रहित नेटवर्क प्रोटोकॉल दोनों के लिए कार्य शामिल हैं।

सॉकेट दो-तरफा संचार लिंक का अंतिम बिंदु है। यह आईपी पते और पोर्ट नंबर की विशेषता है। कनेक्शन शुरू करने के लिए दोनों सिरों पर सॉकेट का उचित विन्यास आवश्यक है। इससे आने वाले संदेशों को सुनना और फिर क्लाइंट-सर्वर वातावरण में प्रतिक्रियाएं भेजना संभव हो जाता है।

'सॉकेट' मॉड्यूल में सॉकेट () फ़ंक्शन एक सॉकेट ऑब्जेक्ट सेट करता है।

import socket
obj = socket.socket(family, type, protocol)

डिफ़ॉल्ट रूप से 'परिवार' तर्क AF_INET है। अन्य स्वीकार्य मान हैं:AF_INET6, AF_UNIX, AF_CAN या AF_RDS। 'प्रकार' तर्क का मान डिफ़ॉल्ट रूप से 'SOCK_STREAM' है जो कनेक्शन-उन्मुख प्रोटोकॉल (टीसीपी) को दर्शाता है। कनेक्शन रहित प्रोटोकॉल (यूडीपी) के लिए इसे 'SOCK_DGRAM' पर सेट करें। 'प्रोटोकॉल' तर्क आमतौर पर डिफ़ॉल्ट रूप से 0 पर सेट होता है।

सर्वर और क्लाइंट पर सॉकेट ऑब्जेक्ट को क्रमशः सर्वर सॉकेट और क्लाइंट सॉकेट कहा जाता है। सॉकेट ऑब्जेक्ट निम्नलिखित विधियों को लागू करता है

बाइंड ()
यह विधि सॉकेट को निर्दिष्ट आईपी पते और पोर्ट नंबर से बांधती है।
सुनो ()
यह विधि सर्वर शुरू करती है और क्लाइंट से कनेक्शन अनुरोध की तलाश में एक सुनने वाले लूप में चलती है।
स्वीकार करें ()
जब सर्वर द्वारा कनेक्शन अनुरोध को इंटरसेप्ट किया जाता है, तो यह विधि इसे स्वीकार करती है और क्लाइंट सॉकेट को उसके पते से पहचानती है।

विशिष्ट सर्वर साइड कोड होगा

import socket
ss = socket.socket()
ss.bind(('localhost',12345))
ss.listen()
client, addr = ss.accept()
print ("connection request from: " + str(addr))

यदि स्थानीय मशीन का उपयोग सर्वर के रूप में क्लाइंट के समान मशीन से आने वाले संदेशों को सुनने के लिए किया जाता है, तो इसका आईपी पता '127.0.0.1' है जिसे लूप बैक एड्रेस भी कहा जाता है। इसे 'लोकलहोस्ट' के होस्टनाम से पहचाना जाता है। सॉकेट को मनमाना खाली पोर्ट नंबर पर सुनने के लिए बनाया गया है। नेटवर्क में दूरस्थ मशीनों के बीच संचार के लिए, वास्तविक आईपी पते का उपयोग किया जाना चाहिए।

क्लाइंट सॉकेट अपने आईपी पते और पोर्ट नंबर पर सुनने वाले सर्वर सॉकेट को कनेक्शन अनुरोध भेजता है

कनेक्ट ()

obj = socket.socket()
obj.connect((host,port))

एक बार क्लाइंट से कनेक्शन अनुरोध सर्वर द्वारा स्वीकार कर लिया जाता है, दोनों सॉकेट ऑब्जेक्ट अब टीसीपी प्रोटोकॉल का उपयोग करके जुड़े हुए हैं और वे डेटा भेज और/या प्राप्त कर सकते हैं।

भेजें ()

सर्वर उस पते का उपयोग करके क्लाइंट को डेटा भेजता है जिसे उसने इंटरसेप्ट किया है।

client.send(bytes)

क्लाइंट सॉकेट उस सॉकेट को डेटा भेजता है जिसके साथ उसने संबंध स्थापित किया है।

obj.send(bytes)

भेजें ()

भेजने के समान ()। यह विधि तब तक डेटा भेजती रहती है जब तक या तो सभी डेटा नहीं भेज दिया जाता है।

भेजें ()

इस पद्धति का उपयोग केवल यूडीपी प्रोटोकॉल के मामले में किया जाना है।

recv()

इस विधि का उपयोग क्लाइंट को भेजे गए डेटा को पुनः प्राप्त करने के लिए किया जाता है। सर्वर के मामले में, यह रिमोट सॉकेट का उपयोग करता है जिसका अनुरोध स्वीकार कर लिया गया है।

client.recv(bytes)

ग्राहक के मामले में,

obj.recv(bytes)

recvfrom()

इस पद्धति का उपयोग यूडीपी प्रोटोकॉल के मामले में किया जाता है।

सर्वर कोड

import socket
host = "127.0.0.1"
port = 12345
ss = socket.socket()
ss.bind((host,port))
ss.listen()
cs, addr = server.accept()
print ("Connection from: " + str(addr))
while True:
   data = cs.recv(1024).decode()
   if not data:
      break
   print ("from connected user: " + str(data))
   print ("Received from User: " + str(data))
   data = input("type message: ")
   conn.send(data.encode())
cs.close()

क्लाइंट कोड

import socket
host = '127.0.0.1'
port = 12345
obj = socket.socket()
obj.connect((host,port))
message = input("type message: ")
while message != 'q':
   obj.send(message.encode())
   data = obj.recv(1024).decode()
   print ('Received from server: ' + data)
   message = input("type message: ")
obj.close()

दो कमांड प्रॉम्प्ट विंडो खोलें। एक रन में पहले सर्वर कोड। अन्य रन क्लाइंट कोड में।

पायथन (सॉकेट) में निम्न-स्तरीय नेटवर्किंग इंटरफ़ेस


  1. पायथन में एसएमटीपी प्रोटोकॉल क्लाइंट (smtplib)

    पायथन के मानक पुस्तकालय में smtplib मॉड्यूल है जो एक SMTP क्लाइंट सत्र ऑब्जेक्ट को परिभाषित करता है जिसका उपयोग पायथन प्रोग्राम के माध्यम से मेल भेजने के लिए किया जा सकता है। मेल सर्वर एक ऐसा एप्लिकेशन है जो इंटरनेट पर ई-मेल को हैंडल और डिलीवर करता है। आउटगोइंग मेल सर्वर एसएमटीपी, या सिंपल मेलट्रां

  1. पायथन सॉकेट त्रुटि को ठीक करें 48

    सॉकेट त्रुटि 48 एक पायथन त्रुटि है जो तब शुरू होती है जब प्रक्रिया स्वयं को पहले से उपयोग में आने वाले पोर्ट से बांधने का प्रयास करती है। सॉकेट.त्रुटि:[इरनो 48] पता पहले से उपयोग में है त्रुटि का क्या कारण है? संक्षिप्त शोध के बाद, हमने पाया कि ये कारण हैं: पोर्ट के लिए बाध्य प्रक्रिया:  जब भी स

  1. रूबी नेटवर्क प्रोग्रामिंग

    क्या आप रूबी में कस्टम नेटवर्क क्लाइंट और सर्वर बनाना चाहते हैं? या बस समझें कि यह कैसे काम करता है? फिर आपको सॉकेट से निपटना होगा। रूबी नेटवर्क प्रोग्रामिंग . के इस दौरे में मेरे साथ शामिल हों मूल बातें सीखने के लिए, और रूबी का उपयोग करके अन्य सर्वर और क्लाइंट से बात करना शुरू करें! तो सॉकेट क्य