# data[].attributes.headline
알아서 자기 섹션 만드세요

# data[].attributes.subject
알아서 자기 섹션 만드세요

# data[].attributes.body
컨셉 : 이름 두자리

# data[].attributes.attachment_link.title
[별첨-1]PC관리명렁어

# data[].attributes.attachment_link.title
2. (팀별 작성) 프로젝트팀편성표_양식

# data[].attributes.attachment_link.title
3. (팀별 작성) 프로젝트 요약서_양식

# data[].attributes.attachment_link.title
수업일지(2일차) 홍누리

# data[].attributes.attachment_link.title
2. (팀별 작성) 프로젝트팀편성표_양식

# data[].attributes.attachment_link.title
3. (팀별 작성) 프로젝트 요약서_양식

# data[].attributes.attachment_link.title
0203 조용욱 수업일지

# data[].attributes.body
import socket

import threading

# 서버 설정

HOST = '0.0.0.0' # 로컬호스트

PORT = 12345 # 사용할 포트 번호

# 클라이언트와 메시지를 주고받는 함수

def handle_client(client_socket, client_addr):

print(f"클라이언트 {client_addr}가 연결되었습니다.")

while True:

try:

data = client_socket.recv(1024)

if not data:

print(f"클라이언트 {client_addr}가 연결을 종료했습니다.")

break # 클라이언트가 연결을 종료하면 루프 탈출

message = data.decode('utf-8')

print(f"클라이언트({client_addr}): {message}") # 수신한 메시지 출력

response = "서버의 응답: 메시지 받았습니다!"

client_socket.sendall(response.encode('utf-8')) # 클라이언트에게 응답 전송

# 서버에서 클라이언트로 보내는 메시지 입력

client_response = input(f"서버에서 클라이언트 {client_addr}로 보낼 메시지 입력 ('exit' 입력 시 종료): ")

if client_response.lower() == 'exit':

break

client_socket.sendall(client_response.encode('utf-8'))

except Exception as e:

print(f"수신 오류: {e}")

break

client_socket.close()

print(f"클라이언트 {client_addr}와 연결 종료")

# 서버 소켓 설정

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

server_socket.bind((HOST, PORT))

server_socket.listen(5) # 최대 5개의 클라이언트 연결 대기

print(f"서버가 {HOST}:{PORT}에서 연결을 기다리는 중...")

while True:

client_socket, client_addr = server_socket.accept()

# 클라이언트와의 통신을 별도 스레드에서 처리

threading.Thread(target=handle_client, args=(client_socket, client_addr), daemon=True).start()

# data[].attributes.body
import socket

import threading

# 서버 주소 설정

HOST = '10.13.228.70' # 서버의 IP 주소

PORT = 12345 # 서버의 포트 번호

# 소켓 생성

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

# 서버로부터 메시지를 받는 함수

def receive_messages():

while True:

try:

data = client_socket.recv(1024)

if not data:

print("서버로부터 연결이 종료되었습니다.")

break

print(f"서버 응답: {data.decode('utf-8')}")

except Exception as e:

print(f"수신 오류: {e}")

break

# 서버로 메시지를 보내는 함수

def send_messages():

while True:

try:

message = input("서버로 보낼 메시지 입력 ('exit' 입력 시 종료): ")

if message.lower() == 'exit':

break

client_socket.sendall(message.encode('utf-8'))

except Exception as e:

print(f"전송 오류: {e}")

break

try:

# 서버에 연결 시도

client_socket.connect((HOST, PORT))

print(f"서버 {HOST}:{PORT}에 연결되었습니다.")

# 메시지 수신 스레드 시작

receive_thread = threading.Thread(target=receive_messages, daemon=True)

receive_thread.start()

# 메시지 송신 스레드 실행

send_messages()

except ConnectionRefusedError:

print("서버에 연결할 수 없습니다. 서버가 실행 중인지 확인하세요.")

except Exception as e:

print(f"오류 발생: {e}")

finally:

client_socket.close()

print("클라이언트 소켓을 종료합니다.")

# data[].attributes.attachment_link.title
0204 조용욱 수업일지

# data[].attributes.attachment_link.title
2.4 김재욱 수업일지

# data[].attributes.attachment_link.title
수업일지 3일차 박찬용

# data[].attributes.attachment_link.title
[별첨-1]PC관리명렁어

# data[].attributes.attachment_link.title
수업일지(3일차)_홍누리

# data[].attributes.attachment_link.title
캐피 프로젝트 요약서_양식

# data[].attributes.attachment_link.title
베이지 파스텔 심플한 그룹 프로젝트 발표 프레젠테이션