대학생 코딩 과제 대행 java, python, oracle 스물 다섯 번째

https://open.kakao.com/o/s3aMpbA
이번에는 지난번에 했던 파이썬으로 소켓통신을 하는 과제를 의뢰받았다.
소켓을 통해서 파일을 서버에 업로드 하는 간단한 과제였다.

먼저 서버

#-*- coding: utf-8 -*-
import socket

#서버 소켓 오픈
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port = 12345
server_socket.bind(("", port))
server_socket.listen(5)

print ("TCP Upload Server Waiting for client on port " + str(port))
while True:
    client_socket, address = server_socket.accept()
    print("I got a connection from ", address)
    req = client_socket.recv(1024)
    print("Request :  ", req)
    decodedReq = req.decode("utf-8")
    print("decode : ", decodedReq)
    fileTitle = decodedReq.split('!@#$%^&*')[0]
    fileContent = decodedReq.split('!@#$%^&*')[1].encode("utf-8")
    print('title : ', fileTitle)
    print('content : ', fileContent)
    uploadFile = open(fileTitle, "wb")
    uploadFile.write(fileContent)
    uploadFile.close()
    client_socket.close()


그리고 더 간단한 클라이언트

import socket
import sys


s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((sys.argv[1], int(sys.argv[2])))
uploadFile = open(sys.argv[3], 'rb')
s.send(sys.argv[3])
s.send('!@#$%^&*')
s.send(uploadFile.read())
uploadFile.close()
s.close()
print('Done!')



먼저 서버를 돌리고
클라이언트를 돌릴 때 host port 업로드할파일
순서대로 해주면 된다.
아래는 실행영상이다.



댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud