6주차_Network : 소켓 실습

2023. 11. 19. 00:51SWLUG/Network

 

몇주간에 걸쳐서 네트워크에 대하여 학습했다.

마무리로 우리 조는 함께 모여 소켓 실습을 진행했다.

 

📌실습 내용

 

[소켓]

from socket import *

serverSock = socket(AF_INET, SOCK_STREAM)
serverSock.bind(('127.0.0.1', 8080))
serverSock.listen(1) 


connectionSock, addr = serverSock.accept()

print(str(addr), 'access')

data = connectionSock.recv(1024)
print("data:", data.decode('utf-8'))

connectionSock.send('I am server.'.encode('utf-8'))
print('메시지를 전송하였습니다.')

 

from socket import *

ClientSock = socket(AF_INET, SOCK_STREAM)
ClientSock.connect(('127.0.0.1', 8080))

print('연결이 확인 되었습니다.')
ClientSock.send('I am client'.encode('utf-8'))

print('메시지를 전송하였습니다.')

data = ClientSock.recv(1024)
print('data: ', data.decode('utf-8'))

 

 

 

[스레드]

from socket import *
import threading
import time

def send(sock):
    while True:
        sendData = input('>>>')
        sock.send(sendData.encode('utf-8'))
        
def receive(sock):
    while True:
        recvData = sock.recv(1024)
        print('상대방:', recvData.decode('utf-8'))
        
port = 8080

serverSock = socket(AF_INET, SOCK_STREAM)
serverSock.bind(('', port))
serverSock.listen(1)

print("%d번 포트로 접속 대기 중.."%port)

connectionSock, addr = serverSock.accept()

print(str(addr), '에서 접속되었습니다.')

sender = threading.Thread(target=send, args=(connectionSock,))
receiver = threading.Thread(target=receive, args=(connectionSock,))

sender.start()
receiver.start()

while True:
    time.sleep(1)
    pass
from socket import *
import threading
import time

def send(sock):
    while True:
        sendData = input('>>>')
        sock.send(sendData.encode('utf-8'))
        

def receive(sock):
    while True:
        recvData = sock.recv(1024)
        print('상대방:', recvData.decode('utf-8'))
        
port = 8080

clientSock = socket(AF_INET, SOCK_STREAM)
clientSock.connect(('127.0.0.1', port))

print('접속 완료')

sender = threading.Thread(target=send, args=(clientSock,))
receiver = threading.Thread(target=receive, args=(clientSock,))

sender.start()
receiver.start()

while True:
    time.sleep(1)
    pass