學習啦 > 學習電腦 > 網絡知識 > 網絡基礎知識 >

如何使用tcp實現局域網內文件傳輸

時間: 加城1195 分享

  局域網通常是分布在一個有限地理范圍內的網絡系統,一般所涉及的地理范圍只有幾公里。局域網專用性非常強,具有比較穩(wěn)定和規(guī)范的拓撲結構。這篇文章主要介紹了python使用tcp實現局域網內文件傳輸,文件包括文本,圖片,視頻等,具有一定的參考價值,感興趣的小伙伴們可以參考一下

  具體功能:

  可以利用python創(chuàng)建的TCP客戶端從我們自己搭建的TCP服務器上下載文件。

  實現需求:

  安裝socket模塊

  簡單了解sokcet模塊用法

  服務器代碼如下:

  import socket

  def file_deal(file_name):

  # 定義函數用于處理用戶索要下載的文件

  try:

  # 二進制方式讀取

  files = open(file_name, "rb")

  mes = files.read()

  except:

  print("沒有該文件")

  else:

  files.close()

  return mes

  def main():

  # 創(chuàng)建套接字

  tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  # 固定端口號

  tcp_socket.bind(("",8888))

  # 將主動套接字轉為被動套接字

  tcp_socket.listen(128)

  while True:

  # 利用accept獲取分套接字以及客戶端的地址

  client_socket,client_addr = tcp_socket.accept()

  # 接收客戶端的數據

  file_name = client_socket.recv(4096)

  # 調用函數處理用戶下載的文件

  mes = file_deal(file_name)

  if mes:

  # 如果文件不為空發(fā)送

  client_socket.send(mes)

  #關閉分套接字

  client_socket.close()

  if __name__ == "__main__":

  main()

  import socket

  def file_deal(file_name):

  # 定義函數用于處理用戶索要下載的文件

  try:

  # 二進制方式讀取

  files = open(file_name, "rb")

  mes = files.read()

  except:

  print("沒有該文件")

  else:

  files.close()

  return mes

  def main():

  # 創(chuàng)建套接字

  tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  # 固定端口號

  tcp_socket.bind(("",8888))

  # 將主動套接字轉為被動套接字

  tcp_socket.listen(128)

  while True:

  # 利用accept獲取分套接字以及客戶端的地址

  client_socket,client_addr = tcp_socket.accept()

  # 接收客戶端的數據

  file_name = client_socket.recv(4096)

  # 調用函數處理用戶下載的文件

  mes = file_deal(file_name)

  if mes:

  # 如果文件不為空發(fā)送

  client_socket.send(mes)

  #關閉分套接字

  client_socket.close()

  if __name__ == "__main__":

  main()

  客戶端代碼:

  from socket import *

  import os

  def main():

  # 建立套接字

  tcp_socket = socket(AF_INET, SOCK_STREAM)

  # 接收用輸入的服務器端的ip和端口

  tcp_ip = input("請輸入ip:")

  tcp_port = int(input("請輸入端口:"))

  # 連接服務器

  tcp_socket.connect((tcp_ip, tcp_port))

  # 輸入要下載的文件名

  file_name = input("請輸入要下載的文件名:")

  # 將文件名發(fā)送至服務器端

  tcp_socket.send(file_name.encode())

  # 創(chuàng)建一個空文件

  new_file = open(file_name, "wb")

  # 用與計算讀取的字節(jié)數

  time = 0

  while True:

  # 接收服務器端返回的內容

  mes = tcp_socket.recv(4096)

  # 如果內容不為空執(zhí)行

  if mes:

  # 解碼并向文件內寫入

  new_file.write(mes.decode())

  # 計算字節(jié)

  time += len(mes)

  else:

  # 如果字節(jié)數為空即未收到內容

  if time == 0:

  # 關閉文件

  new_file.close()

  # 刪除剛剛創(chuàng)建的文件

  os.remove(file_name)

  print("沒有您要下載的文件")

  else:

  # 如過time有值時name文件傳輸完成

  print("文件下載成功")

  break

  # 關閉套接字

  tcp_socket.close()

  if __name__ == '__main__':

  main()

  補充:局域網、校園網安全維護方法

  校園網絡分為內網和外網,就是說他們可以上學校的內網也可以同時上互聯網,大學的學生平時要玩游戲購物,學校本身有自己的服務器需要維護;

  在大環(huán)境下,首先在校園網之間及其互聯網接入處,需要設置防火墻設備,防止外部攻擊,并且要經常更新抵御外來攻擊;

  由于要保護校園網所有用戶的安全,我們要安全加固,除了防火墻還要增加如ips,ids等防病毒入侵檢測設備對外部數據進行分析檢測,確保校園網的安全;

  外面做好防護措施,內部同樣要做好防護措施,因為有的學生電腦可能帶回家或者在外面感染,所以內部核心交換機上要設置vlan隔離,旁掛安全設備對端口進行檢測防護;

  內網可能有ddos攻擊或者arp病毒等傳播,所以我們要對服務器或者電腦安裝殺毒軟件,特別是學校服務器系統等,安全正版安全軟件,保護重要電腦的安全;

  對服務器本身我們要安全server版系統,經常修復漏洞及更新安全軟件,普通電腦一般都是撥號上網,如果有異常上層設備監(jiān)測一般不影響其他電腦。做好安全防范措施,未雨綢繆。


如何使用tcp實現局域網內文件傳輸相關文章:

1.兩臺電腦在同一個局域網怎么傳輸文件(2)

2.如何簡單設置一個局域網

3.局域網資源共享的實現的方法

4.怎么樣把幾臺電腦連接在同一個局域網

5.電腦局域網怎樣連接

4051488