인공지능 공부/남박사의 파이썬 실전

(인프런) 파이썬 실전 Server - Client , Thread 기초

class CarMixIn:
    def ready(self):
        print("믹스인 레디")
    def start(self):
        print("{}가 {}속도로 달립니다.".format(self.name, self.speed))


class Performance():
    def __init__(self, name, speed):
        self.name = name
        self.speed = speed
        self.ready()
##다중상속받는 SuperCar -> CarMixIn , Performence 다 쓸 수 있음
class SuperCar(CarMixIn, Performance):
    def show_info():
        print("{}는 {} 속도의 성능입니다.".format(self.name, self.speed))

s = SuperCar("람보르", 300)
s.show_info 
s.start()​
'''
1. 소켓생성

2. 바인딩(클라이언트는 바인딩 생략)

3. 접속대기

4. 접속수락(접속을 생략한다 이유는 접속수락을 할필요 없다.)

5. 데이터 송/수신

6. 접속종료

'''

import socket

print("1. 소켓생성")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
##TCP소켓을 생성했다.

print("3. 접속시도")
sock.connect("127.0.0.1", 12002)
#나 자신을 가르키는 

print("5. 데이터 송/수신")
sock.sendall("Hello socket programming".encode())

print("6.접속종료")
sock.close()

​
import time
import threading

def 주문받기():
    for i in range(5):
        print("주문받기 :{}".format(i))
        time.sleep(1)


def 우편발송():
    for i in range(5):
        print("우편발송 :{}".format(i))
        time.sleep(0.5)

th1 = threading.Thread(target=주문받기)
th2 = threading.Thread(target=우편발송)

'''메인쓰레드가 죽으면 deaemon은 죽음
th1.daemon=True
th2.daemon=True
'''

th1.start()
th2.start()
'''
1. 소켓생성
2. 바인딩
3. 접속대기
4. 접속수락
5. 데이터 송/수신
6. 접속종료
'''

import socket
print("1. 소켓생성")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
##TCP소켓을 생성했다.

print("2. 바인딩")
sock.bind(("", 12002))##나이아이피 쓸꺼얌 운영체제한테 알려준다.
##내컴퓨터에서 실행하기에 아이피 안써도됌

print("3. 접속대기")
sock.listen()

print("4. 접속수락")
c_sock , addr = sock.accept()#return 2개됨 접속된 Client소켓이 리턴이 되고 주소가 리턴이 됌
## 여기서 멈춘다. 클라이언트 대기 

print("5. 데이터 송/수신")
receive_date = c_sock.recv(1024)
print("수신된 데이터 {}:".format(receive_date))

print("6. 접속종료")
c_sock.close()
sock.close()