성균관대학교 소프트웨어학과 추현승 교수님의 2021년도 1학기 네트워크 개론 수업 과제 입니다.
서버가 가지고 있는 파일을 클라이언트 측으로 전송하는 프로그램입니다.
전송하고자 하는 파일을 서버 디렉터리에 위치시키고 서버 프로그램에 파일을 오픈하는 코드에서 파일 이름을 설정해주면 됩니다.
서버를 실행시킨 후 클라이언트를 실행시켜 파일 전송 요청을 보내면 클라이언트 디렉터리에 서버가 가지고 있는 파일이 전송되어 생성되는 것을 확인할 수 있습니다.
파일 구조
fileTransfer
|-------- server
|-------sent_data.txt
|-------server.py
|-------- client
|-------client.py
server.py
#import socket for socket programming
from socket import *
#import os to get path of current directory
import os
#prepare server socekt - TCP
serverSocket = socket(AF_INET, SOCK_STREAM)
serverPort = 12345
serverSocket.bind(("", serverPort))
serverSocket.listen(1)
print('Ready to serve...')
#create connection socket
connectionSocket, addr = serverSocket.accept()
#get path of current directory
#execute server.py program on problem8 directory -> current_dir = HW2_2017310301/problem8
current_dir = os.getcwd()
#open sent_data.txt file stored in HW2_2017310301/problem8/server and read the file as binary
f = open(current_dir + '/server/sent_data.txt', 'rb')
try:
#save the data read from the sent_data.txt file
data = f.read(1024)
#send data through connectino socket
connectionSocket.send(data.encode())
#handle exception
except Exception:
print(Exception)
#close socket
serverSocket.close()
client.py
#import socket for socket programming
from socket import *
#import os to get path of current directory
import os
#import sys
import sys
#prepare client socket - TCP
serverName = '127.0.0.1'
serverPort = 12345
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))
#get path of current directory
#execute server.py program on problem8 directory -> current_dir = HW2_2017310301/problem8
current_dir = os.getcwd()
#create sent_data.txt file stored in HW2_2017310301/problem8/client and open to write in binary
f = open(current_dir + "/client/Received_data.txt" , "wb")
try:
#store data recieved from server througth client socket
data = clientSocket.recv(1024)
#write recieved data in new text file
f.write(data)
print(data)
#handle exception
except Exception:
print(Exception)
#close socket
clientSocket.close()
'컴퓨터 공학 > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] acronym 총정리 (0) | 2021.05.31 |
---|---|
[컴퓨터 네트워크] 네트워크 계층 기본 개념 정리 (0) | 2021.05.30 |
[Python3/컴퓨터 네트워크] 소켓 프로그래밍 : 멀티 쓰레드 (0) | 2021.05.03 |
[컴퓨터 네트워크] Transport Layer 전송 계층 기본 개념 정리 (0) | 2021.05.02 |
[컴퓨터 네트워크] Application layer 애플리케이션 계층 기본 개념 정리 (0) | 2021.05.02 |