1. ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์๋ก๋ถํฐ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์๋ฒ๋ก ์ ์กํ๋ค.
2. ์๋ฒ์์ ํด๋น ๊ธ์๋ค์ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ฐ๊พธ๊ณ ๋ค์ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ค.
3. ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
โ UDP ์์ผ ํ๋ก๊ทธ๋๋ฐ
๐ฅ UDPClient.py
from socket import *
serverName = '127.0.0.1' # ์๋ฒ IP์ฃผ์
serverPort = 12000 # ์๋ฒ ํฌํธ๋ฒํธ
clientSocket = socket(AF_INET, SOCK_DGRAM) # ํด๋ผ์ด์ธํธ ์์ผ ์์ฑ (IPv4, UDP์์ผ)
message = input('Input lower sentence:') # ์ฌ์ฉ์ ์
๋ ฅ์ผ๋ก ๋ฉ์์ง ์์ฑ
# ํจํท์ ๋ถ์ด๊ณ ๋ชฉ์ ์ง ํธ์คํธ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ ๊ธฐ๋ค๋ฆฌ๊ธฐ
clientSocket.sendto(message.encode(), (serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) # ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์
print(modifiedMessage.decode()) # ๊ฒฐ๊ณผ ์ถ๋ ฅ
clientSocket.close() # ์์ผ์ ๋ซ๊ณ ํ๋ก์ธ์ค ์ข
๋ฃ
- ํจํท์ ์๋ฒ๋ก ์ ์ก๋๊ธฐ ์ ์ ์ถ๋ฐ์ง ์ฃผ์(์ถ๋ฐ์ง IP, ์ถ๋ฐ์ง ํฌํธ๋ฒํธ)์ ๋ชฉ์ ์ง ์ฃผ์(๋ชฉ์ ์ง IP, ๋ชฉ์ ์ง ํฌํธ๋ฒํธ)๊ฐ ๋ถ๊ฒ ๋๋๋ฐ,
์ด ์์ ์ ์ฝ๋๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ์ํ๋์ง ์๊ณ , os๊ฐ ์๋์ผ๋ก ์ํํ๋ค. (line 8)
๐ฅ UDPServer.py
from socket import *
serverName = '127.0.0.1' # ์๋ฒ IP์ฃผ์
serverPort = 12000 # ์๋ฒ ํฌํธ๋ฒํธ
clientSocket = socket(AF_INET, SOCK_DGRAM) # ํด๋ผ์ด์ธํธ ์์ผ ์์ฑ (IPv4, UDP์ฐ๊ฒฐ)
message = input('Input lower sentence:') # ์ฌ์ฉ์ ์
๋ ฅ์ผ๋ก ๋ฉ์์ง ์์ฑ
# ํจํท์ ๋ถ์ด๊ณ ๋ชฉ์ ์ง ํธ์คํธ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ ๊ธฐ๋ค๋ฆฌ๊ธฐ
clientSocket.sendto(message.encode(), (serverName, serverPort))
# ํจํท์๋ ์ถ๋ฐ์ง ์ฃผ์(์ถ๋ฐ์ง ip, ์ถ๋ฐ์ง ํฌํธ๋ฒํธ)์ ๋ชฉ์ ์ง ์ฃผ์(๋ชฉ์ ์ง ip, ๋ชฉ์ ์ง ํฌํธ๋ฒํธ)๊ฐ ๋ถ๊ฒ ๋๋๋ฐ,
# ์ด ์์
์ ์ฝ๋๋ฅผ ํตํด ๋ช
์์ ์ผ๋ก ํ์ง ์๊ณ os๊ฐ ์๋์ผ๋ก ์ํํ๋ค.
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) # ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์
print(modifiedMessage.decode()) # ๊ฒฐ๊ณผ ์ถ๋ ฅ
clientSocket.close() # ์์ผ์ ๋ซ๊ณ ํ๋ก์ธ์ค ์ข
๋ฃ
๐ฅ ๊ฐ๋จํ๊ฒ ๊ฒฐ๊ณผํ์ธ
- ํฐ๋ฏธ๋ ๋ ๊ฐ ์ผ์ ํ๋๋ก๋ ์๋ฒ ํ๋ก๊ทธ๋จ์ ์ผ๋๊ณ , ๋ค๋ฅธ ์๋์ฐ์์๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์คํ์์ผ๋ณด์๋ค.
- ๋๋ฌธ์๋ก ์ ๋ฐ๊พธ์ด ์ถ๋ ฅํด์ค ๊ฒ์ ํ์ธํด๋ณผ ์ ์์๋ค
โ TCP ์์ผ ํ๋ก๊ทธ๋๋ฐ
๐ฅ TCPClient.py
from socket import *
serverName = '127.0.0.1' # ์๋ฒ IP
serverPort = 12000 # ์๋ฒ ํฌํธ๋ฒํธ
clientSocket = socket(AF_INET, SOCK_STREAM) # ํด๋ผ์ด์ธํธ ์์ผ ์์ฑ (IPv4, TCP์์ผ)
clientSocket.connect((serverName,serverPort)) # TCP์ฐ๊ฒฐ ์์. ๊ณง๋ฐ๋ก 3-way handshake ์ํ๋๊ณ TCP์ฐ๊ฒฐ์ด ๋๋ค
sentence = input('Input lowercase sentence:') # ์ฌ์ฉ์๋ก๋ถํฐ ๋ฌธ์ฅ ์
๋ ฅ๋ฐ๊ธฐ
clientSocket.send(sentence.encode()) # TCP์ฐ๊ฒฐ๋ก sentence๋ฅผ ์ ์กํ๊ณ , ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ ๊ธฐ๋ค๋ฆฐ๋ค
modifiedSentence = clientSocket.recv(1024) # ์๋ฒ๋ก๋ถํฐ ๋ฌธ์์ด์ ๋ฐ๋๋ค
print('From Server:', modifiedSentence.decode()) # ๊ฒฐ๊ณผ์ถ๋ ฅ
clientSocket.close()
๐ฅ TCPServer.py
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM) # ์๋ฒ ์์ผ ์์ฑ (IPv4, TCP์์ผ)
serverSocket.bind(('', serverPort)) # ์๋ฒ ์์ผ๊ณผ ํฌํธ๋ฅผ ๋ฐ์ธ๋ฉ
serverSocket.listen(1) # ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ TCP ์ฐ๊ฒฐ ์์ฒญ์ ๋ฃ๋๋ค
print('The server is ready to receive')
while True:
connectionSocket, addr = serverSocket.accept() # ์๋ฒ๋ ์๋ก์ด ์์ผ(connectionSocket)์ ๋ง๋ ๋ค.
# ๊ณง๋ฐ๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ handshaking์ ์๋ฃํ๊ณ , TCP์ฐ๊ฒฐ์ ์์ฑํ๊ฒ ๋๋ค
sentence = connectionSocket.recv(1024).decode() # ํด๋ผ์ด์ธํธ๋ก๋ถํฐ sentence๋ฅผ ๋ฐ์์
capitalizedSentence = sentence.upper() # ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ๊ณ
connectionSocket.send(capitalizedSentence.encode()) # ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค
connectionSocket.close() # ์๋ฒ์์ผ์ ์ด์ด๋๊ณ , ์ฐ๊ฒฐ์์ผ์ ๋ซ๊ธฐ
๐ฅ ์คํ
'๊ฐ์ธ ๊ณต๋ถ > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTTP form data ์ ์ก (0) | 2023.10.04 |
---|---|
[๊ฐ์ ์ ๋ฆฌ] ๋ฉ๋ฆฌ ์๋ ์ปดํจํฐ๋ผ๋ฆฌ๋ ์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค - IP ํ๋กํ ์ฝ ๊ตฌ์กฐ (0) | 2023.06.22 |