मैं वर्तमान में पायथन में एक टेलनेट सर्वर लिख रहा हूं। यह एक सामग्री सर्वर है। लोग टेलनेट के माध्यम से सर्वर से कनेक्ट होंगे, और टेक्स्ट-केवल सामग्री के साथ प्रस्तुत किए जाएंगे।एकाधिक एक साथ नेटवर्क कनेक्शन - टेलनेट सर्वर, पायथन
मेरी समस्या यह है कि सर्वर को एक से अधिक एक साथ कनेक्शन का समर्थन करने की आवश्यकता होगी। वर्तमान कार्यान्वयन अब मैं केवल एक का समर्थन करता हूं।
यह बुनियादी, सबूत अवधारणा-का-सर्वर मैं के साथ शुरू हुआ है (जबकि कार्यक्रम समय के साथ बहुत बदल गया है, बुनियादी ढांचे टेलनेट नहीं है):
import socket, os
class Server:
def __init__(self):
self.host, self.port = 'localhost', 50000
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.bind((self.host, self.port))
def send(self, msg):
if type(msg) == str: self.conn.send(msg + end)
elif type(msg) == list or tuple: self.conn.send('\n'.join(msg) + end)
def recv(self):
self.conn.recv(4096).strip()
def exit(self):
self.send('Disconnecting you...'); self.conn.close(); self.run()
# closing a connection, opening a new one
# main runtime
def run(self):
self.socket.listen(1)
self.conn, self.addr = self.socket.accept()
# there would be more activity here
# i.e.: sending things to the connection we just made
S = Server()
S.run()
आपकी मदद के लिए धन्यवाद।
+1 पर
देखो: मुड़ जाने का रास्ता है। एक साधारण टेलनेट सर्वर को कार्यान्वित करना वास्तव में आसान होना चाहिए। – nosklo