parent
2689090700
commit
8da58c145a
@ -0,0 +1,108 @@
|
||||
import hashlib
|
||||
import json
|
||||
import selectors
|
||||
import socket
|
||||
import threading
|
||||
from time import sleep
|
||||
|
||||
import select
|
||||
|
||||
|
||||
# from entity.Letter import Letter
|
||||
|
||||
|
||||
# def main():
|
||||
# # 用户输入各种数据填充letter字段
|
||||
# # 获取用户的公私钥对进行签名
|
||||
# # 使用对方的公钥进行加密
|
||||
# # 发送信件
|
||||
# pass
|
||||
#
|
||||
#
|
||||
# def sendLetter(letter: Letter, target="192.168.195.162:8426"):
|
||||
# # 向目标ip和端口发送指定的信件
|
||||
# pass
|
||||
|
||||
class recver():
|
||||
def __init__(self):
|
||||
self.file_name = ""
|
||||
self.flle_size = 0
|
||||
self.file_sha256 = ""
|
||||
self.addr = ("", 0)
|
||||
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.server.bind(('127.0.0.1', 8425))
|
||||
self.server.listen(10)
|
||||
|
||||
def recver_thread(self):
|
||||
while True:
|
||||
conn, addr = self.server.accept()
|
||||
data = conn.recv(10240)
|
||||
msg = json.loads(data.decode())
|
||||
if int(msg['flag']) == 0:
|
||||
print("\nhaved received data:"+msg["data"]+"\n")
|
||||
elif int(msg['flag']) == 1:
|
||||
self.recv_file(msg['data'])
|
||||
else:
|
||||
print("Error")
|
||||
|
||||
def send_thread(self, conn):
|
||||
while True:
|
||||
flag: int = int(input(""))
|
||||
if flag == 0:
|
||||
data = input("Enter data to send: ")
|
||||
msg = {"flag": 0, "data": data}
|
||||
msg = json.dumps(msg).encode("utf-8")
|
||||
self.send_data(conn, msg)
|
||||
elif flag == 1:
|
||||
file_name = input("Enter file name to send: ")
|
||||
self.send_file(conn, file_name)
|
||||
else:
|
||||
print("Error,plesae enter 0 to send data, or 1 to send file.")
|
||||
|
||||
|
||||
def send_data(self, conn, data):
|
||||
conn.sendall(data)
|
||||
|
||||
def send_file(self, conn, file_name):
|
||||
data = "dawwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
msg = {"flag": 1, "data": data}
|
||||
msg = json.dumps(msg).encode("utf-8")
|
||||
conn.sendall(msg)
|
||||
|
||||
def recv_data(self, conn):
|
||||
con, addr = conn.accept()
|
||||
data = con.recv(1024)
|
||||
if not data:
|
||||
return None
|
||||
# print(data.decode())
|
||||
return data.decode()
|
||||
def main(self):
|
||||
|
||||
while True:
|
||||
try:
|
||||
client = socket.socket() # 定义协议类型,相当于生命socket类型,同时生成socket连接对象
|
||||
client.connect(('127.0.0.1', 8424))
|
||||
print("Connected to recver.")
|
||||
print("if you want to send data, enter 0, if you want to send file, enter 1.")
|
||||
sleep(1)
|
||||
break
|
||||
except socket.error:
|
||||
print("Waiting for recver...")
|
||||
# 加入线程
|
||||
threading.Thread(target=self.recver_thread, ).start()
|
||||
threading.Thread(target=self.send_thread, args=(client,)).start()
|
||||
|
||||
def run(self):
|
||||
threading.Thread(target=self.main).start()
|
||||
|
||||
def recv_file(self, data):
|
||||
with open("3.txt", 'wb') as file:
|
||||
print("Receiving file data...")
|
||||
file.write(data) # 写入数据到文件
|
||||
print("File received successfully.")
|
||||
|
||||
|
||||
# test
|
||||
if __name__ == '__main__':
|
||||
a = recver()
|
||||
a.run()
|
@ -0,0 +1,116 @@
|
||||
import hashlib
|
||||
import json
|
||||
import selectors
|
||||
import socket
|
||||
import threading
|
||||
from time import sleep
|
||||
|
||||
import select
|
||||
|
||||
# from entity.Letter import Letter
|
||||
|
||||
|
||||
|
||||
# def main():
|
||||
# # 用户输入各种数据填充letter字段
|
||||
# # 获取用户的公私钥对进行签名
|
||||
# # 使用对方的公钥进行加密
|
||||
# # 发送信件
|
||||
# pass
|
||||
#
|
||||
#
|
||||
# def sendLetter(letter: Letter, target="192.168.195.162:8426"):
|
||||
# # 向目标ip和端口发送指定的信件
|
||||
# pass
|
||||
|
||||
class sender():
|
||||
def __init__(self):
|
||||
self.file_name=""
|
||||
self.flle_size=0
|
||||
self.file_sha256=""
|
||||
self.addr=("",0)
|
||||
self.server=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.server.bind(('127.0.0.1', 8424))
|
||||
self.server.listen(10)
|
||||
|
||||
def recver_thread(self):
|
||||
while True:
|
||||
conn, addr = self.server.accept()
|
||||
data = conn.recv(10240)
|
||||
|
||||
msg=json.loads(data.decode())
|
||||
if int(msg['flag']) == 0:
|
||||
print("\nhaved received data:"+msg["data"]+"\n")
|
||||
elif int(msg['flag']) == 1:
|
||||
self.recv_file(msg['data'])
|
||||
else:
|
||||
print("Error")
|
||||
|
||||
def send_thread(self,conn):
|
||||
while True:
|
||||
flag:int=int(input())
|
||||
if flag==0:
|
||||
data=input("Enter data to send: ")
|
||||
msg={"flag":0,"data":data}
|
||||
msg=json.dumps(msg).encode("utf-8")
|
||||
self.send_data(conn,msg)
|
||||
elif flag==1:
|
||||
file_name=input("Enter file name to send: ")
|
||||
self.send_file(conn,file_name)
|
||||
else:
|
||||
print("Error,plesae enter 0 to send data, or 1 to send file.")
|
||||
|
||||
|
||||
|
||||
|
||||
def send_data(self, conn, msg):
|
||||
conn.sendall(msg)
|
||||
def send_file(self, conn, file_name):
|
||||
data = "dawwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
msg={"flag":1,"data":data}
|
||||
msg=json.dumps(msg).encode("utf-8")
|
||||
conn.sendall(msg)
|
||||
|
||||
def recv_data(self,conn):
|
||||
con, addr = conn.accept()
|
||||
data = con.recv(1024)
|
||||
if not data:
|
||||
return None
|
||||
# print(data.decode())
|
||||
return data.decode()
|
||||
# def recv_file(self,conn):
|
||||
# con, addr = conn.accept()
|
||||
# with open("3.txt", 'wb') as file:
|
||||
# print("Receiving file data...")
|
||||
# while True:
|
||||
# # 接收数据块
|
||||
# data = con.recv(2048)
|
||||
# if not data:
|
||||
# break # 如果没有更多数据则退出循环
|
||||
# file.write(data) # 写入数据到文件
|
||||
# print("File received successfully.")
|
||||
def recv_file(self,data):
|
||||
with open("3.txt", 'wb') as file:
|
||||
print("Receiving file data...")
|
||||
file.write(data.encode("utf-8")) # 写入数据到文件
|
||||
print("File received successfully.")
|
||||
def run(self):
|
||||
threading.Thread(target=self.main).start()
|
||||
def main(self):
|
||||
while True:
|
||||
try:
|
||||
client = socket.socket() # 定义协议类型,相当于生命socket类型,同时生成socket连接对象
|
||||
client.connect(('127.0.0.1', 8425))
|
||||
print("Connected to recver.")
|
||||
print("if you want to send data, enter 0, if you want to send file, enter 1.")
|
||||
sleep(1)
|
||||
break
|
||||
except socket.error:
|
||||
print("Waiting for recver...")
|
||||
#加入线程
|
||||
threading.Thread(target=self.recver_thread, ).start()
|
||||
threading.Thread(target=self.send_thread,args=(client,)).start()
|
||||
#test
|
||||
if __name__ == '__main__':
|
||||
a=sender()
|
||||
a.run()
|
Loading…
Reference in new issue