udp_tcp.docx
0.10MB

 

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

+ Recent posts