1. UDP Server Socket

from socket import *                                                 // socket 모듈을 불러온다.

import 모듈명 

 - 모듈 전체를 불러온다.

 - 사용하려면 '모듈명.메소드'와 같이 항상 모듈명을 붙여줘야한다.

from 모듈명 import *

 - 모듈에서 변수, 메소드, 클래스를 모두 불러온다.

 - 변수, 메소드, 클래스 앞에 모듈명을 붙이지 않고 그대로 사용할 수 있다.

server_sock = socket( AF_INET , SOCK_DGRAM )            // 소켓 객체를 만든다. 

   Address Family(주소 체계) - IPv4         

   Socket Kind(소켓 종류) - UDP

server_sock.bind( ( '', 30000) )                          

data = server_sock.recvfrom( 65535 )                // 데이터를 수신한다.

.accept() 를 안하기 때문에 연결된 클라이언트 소켓 객체에게 데이터를 받는게 아니라 모든 클라이언트에게 데이터를 받는다.  

.recvfrom()         리턴값이 두개 : ( data , address )

 ex)  data[0] = b'hello'  data[1][0] = 192.168.11.166(client)  str(data[1][1]) = 38452 

print( 'receive from  ' + data[1][0] + ' : ' + str(data[1][1]) )

print( 'recv : ' + data[0].decode() )

server_sock.sendto( data[0] , data[1] )              // 데이터를 송신한다.

.sendto( data , address ) 

.accept() 를 사용해서 클라이언트 소켓 객체를 받아오지 않기 때문에 보낼 데이터와 주소까지 인자값에 넣어야한다. 

server_sock.close() 



2. UDP Client Socket

from socket import *

client_sock = socket( AF_INET , SOCK_DGRAM )

data = input( 'any input : ' )

client_sock.sendto( data.encode() , ('192.168.11.166' , 30000) )              // 서버에게 데이터를 송신한다.

 .connect()를 안하기 때문에 데이터를 전송할때 address도 인자값에 넣어주어야한다.

data = client_sock.recvfrom( 65535 )

print( data[0].decode() )

 data = ( data , address ) 


'Hacking > Network' 카테고리의 다른 글

[5일차] UDP 헤더 패킷 분석하기  (0) 2017.09.19
Raw 소켓 프로그래밍  (0) 2017.09.15
파이썬을 이용한 TCP 소켓 프로그래밍  (0) 2017.09.13
파이썬 설치  (0) 2017.09.11
환경 구축  (0) 2017.09.11

WRITTEN BY
Bugday

,