UDP 통신
-Client

-Server

-Result

UDP Server
from socket import * #socket과 관련 함수를 사용하기 위해 socket을 import 해준다.
serverPort = 65001
serverSocket = socket(AF_INET, SOCK_DGRAM) #소켓을 생성한다. (소켓 관련한 프로그래밍에서는 socket 객체를 이용하기 때문에 socket.을 해주고 있다. AF_INET는 IPv4, SOCK_DGRAM은 UDP 통신 방식을 사용함을 의미한다. )
serverSocket.bind(('175.214.60.124', serverPort)) #통신을 위해 bind를 통해 port를 열어준다. 첫번째 인자는 ip를 문자열 형태로 , 두번째 인자는 포트 번호를 입력한다.
print ('The server is ready to receive')
while True:
message, clientAddress = serverSocket.recvfrom(2048) #클라이언트로 부터 문자열을 전달 받기위해 recvfrom을 한다.
modifiedMessage = message.decode().upper() #Client에서 문자데이터를 보낸다면 bytes type으로 메시지가 오게 되는데 받은 메시지를 파이선에서 출력하고 싶다면 받은문자열.decode()를 통해 decoding 해주어야함
serverSocket.sendto(modifiedMessage.encode(),
clientAddress) #보낼 문자열이 있다면 보낼 문자열.encoding()을 해주어야 한다.
UDP 통신처럼 연결하지 않은 상태에서 메시지를 전송하거나 수신할 때 sendto 함수와 recvfrom 함수를 사용한다.
UDP Client
from socket import *
serverPort = 65001
serverSocket = socket(AF_INET, SOCK_DGRAM) #server와 마찬가지로 socket을 생성해준다.
serverSocket.bind(('175.214.60.124', serverPort)) #통신을 위해서 bind. (Client에서는 굳이 만들 필요가 없다고 한다. 임의로 port 번호가 생성된다.)
print ('The server is ready to receive')
while True:
message, clientAddress = serverSocket.recvfrom(2048) #서버로부터 문자열을 받기 위해 recvfrom을 한다.
modifiedMessage = message.decode().upper()
serverSocket.sendto(modifiedMessage.encode(),
clientAddress) #sendto를 통해 server에서 받은 글자를 upper()해 server에 대문자로 메시지를 보내준다.
'Data Communication' 카테고리의 다른 글
DHCP (0) | 2019.11.06 |
---|---|
이더리움 지갑 Coding (0) | 2019.11.04 |
DNS Query (0) | 2019.10.14 |
Web Socket (0) | 2019.10.10 |
데이터통신 python - TCP 통신 (0) | 2019.10.08 |