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