ファイルとプリンターの共有がオンになっている場合に、LAN 内で機能する小さなチャット プログラムを作成しました。これは、単純なプレーン テキスト ファイルに基づいています。2 つの異なるスクリプトがあります。1 つは送信部分を処理し、もう 1 つは受信部分を処理します。私はそれを 1 つのスクリプトとして配置しようとしましたが、他のユーザーが送信したメッセージを受信するには、メッセージを入力する必要があります。では、それを 1 つのスクリプトとしてどのように配置すればよいでしょうか。
送信スクリプト:
from sys import exit
LAN_NAME = "\\\\ONE-PC"
LAN_MSG_FILE = "%s\\Users\\Public\\me.txt" % LAN_NAME
TCHAT_VER = "1.1.0"
print "TChat - Version %s" % TCHAT_VER
print "Copyright(c) 2013 - Ahnaf Tahmid"
print "--------------------------------"
def send_data(src, msg):
_file_ = open(src, 'w')
_file_.truncate()
_file_.write(msg)
_file_.close()
msg = raw_input("[You]: ")
print "\n"
while True:
send_data(LAN_MSG_FILE, msg)
msg = raw_input("[You]: ")
print "\n"
if msg == "[exit]":
send_data(LAN_MSG_FILE, "[exit]")
raw_input("Press ENTER to exit.")
exit(0)
受信スクリプト:
from sys import exit
CLN = "\\\\TWO-PC"
CLN_MSG_FILE = "%s\\Users\\Public\\me.txt" % CLN
VER = "1.0.0"
def fetch_data(src):
_file_ = open(src, 'r')
message = _file_.read()
_file_.close()
return message
msg = " "
msg_to_display = "x"
print "TChat Receiver v%s." % VER
print "Copyright(c) 2013 - Ahnaf Tahmid."
print "---------------------------------"
print "\n"
while True:
msg = fetch_data(CLN_MSG_FILE)
if msg_to_display == msg:
pass
else:
msg_to_display = msg
if msg_to_display == "[exit]":
print "[%s] has disconnected.";
raw_input("Press ENTER to exit")
exit(0)
print "[%s]: %s\n" % (CLN, msg_to_display)
注: これら 2 つのスクリプトは、両方の PC で実行する必要があります。1 つはメッセージを受信して表示し、もう 1 つはメッセージを送信します。
これが私の試みです:
from sys import exit
LAN_NAME = "\\\\ONE-PC"
LAN_MSG_FILE = "%s\\Users\\Public\\me.txt" % LAN_NAME
CLN = "\\\\TWO-PC"
CLN_MSG_FILE = "%s\\Users\\Public\\me.txt" % CLN
TCHAT_VER = "1.0.2"
def fetch_data(src):
file_ = open(src, 'r')
file_data = file_.read()
file_.close()
return file_data
def send_data(src, data):
file_ = open(src, 'w')
file_.truncate()
file_.write(data)
file_.close()
def clean_cache(src):
file_ = open(src, 'w')
file_.truncate()
file_.close()
print "TChat - Version %s" % TCHAT_VER
print "Copyright(c) 2013 - Ahnaf Tahmid"
print "--------------------------------"
print "\n"
print "To exit anytime, type in [exit]"
print "\n"
msg = raw_input("[You]: ")
msg_lan = " "
while msg != "[exit]":
send_data(LAN_MSG_FILE, msg)
print "\n"
print "Fetching data.."
msg_lan = fetch_data(CLN_MSG_FILE)
while len(msg_lan) <= 1:
msg_lan = fetch_data(CLN_MSG_FILE)
clean_cache(CLN_MSG_FILE)
print "\n"
print "[Friend]: %s" % msg_lan
print "\n"
msg = raw_input("[You]: ")
print "\n"
print "Thanks for using TChat."
raw_input("Press ENTER to exit")
exit(0)
どんな助けでも大歓迎です。