티스토리 뷰

udp_client /server




 - 문자 메세지 같은 서비스와 비슷 (SMS/MMS)
 - 데이터 전송
 - 연결하는 과정이 없음 --> 불안정하다
 - 간결하고 빠르다
 - 빠르고 간편하게 사용가능 
 - 소규모 통신에 적합



 1) UDP_cleint


>>udp_client.py


  >>recvfrom와 sendto는 동기화 해야함 --> 동시에 사용할 수 없음
  - recvfrom  //block function (sendto가 먼저 사용 될 경우 )


  - sendto
    //socket모듈에 정리 되어있음(python.org)

   >>sendto의 원형
   socket.sendto(bytes, address)
         (보낼 데이터의 타입, 주소)
       >>sendto에 정의
          address의 형태
           (host,port)  -> ('192.168.4.100',1000) 

address --> 한쌍의 튜플 형태

          

     ! listen() 과 accept()이 없음

connect() 없음 --> 정확히 나와 통신이 되었다고 말할 수 없다 (다른사용자와 구분 X)


** tcp 의경우

sendto (bytes,address) --> send()

recvfrom() --> recv()


-->IPv4의 버전 #ifconfig 의 inet addr이 아이피 형태
            host : 네트워크에서의 식별 번호
            port : 서비스의 식별 번호 #netstat -anu (port번호 확인할때 )
                     -- > 상대방 서버의 포트 번호를 나타내는 것



# vi udp_client.py


import socket
import sys

if len(sys.argv) < 3:
 print("usage: udp_client.py <ip> <port>")
 sys.exit()

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
ip=sys.argv[1]
port = int(sys.argv[2])
print(ip,port)
sock.sendto(b'hello',(ip,port))
~                               





2. UDP_ server


>> udp_server.py


  - 소켓이 2개 이상 필요로 한다
  - 서버 자신의 소켓 1개
  - 클라이언트에 대한 소켓 1개 이상
  - 서버 소켓 생성
  - bind
    -->bind에 들어가는 address 는 UDP에 들어가는 address형태와 동일

 

server_sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
 -->서버가 소켓을 만드는데 UDP용 소켓을 만드는 것


#serever_sock.bind(address) #서버가 사용할 포트번호 지정
server_sock.bind( (host, port) ) //서버가 사용할 포트번호 지정
server_sock.listen(10) //사용자가 최대 10명이라는 의미
server_sock.accept() //클라이언트의 연결 요청이 있을 떄 까지 대기


# vi udp_server.py


import socket

server_sock= socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

server_sock.bind(('192.168.219.180',10000))

data= server_sock.recvfrom(65535)
print(data)








>>통신




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

Layer 3/IPv4  (0) 2017.12.14
Layer 4/UDP 헤더 분석 (Low Socket)  (0) 2017.12.14
TCP socket Programming  (0) 2017.12.12
01. 네트워크(Network)-소켓 (socket)  (0) 2017.12.11
Network(Linux )시스템 구축  (0) 2017.12.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함