Header

  1. View current page

    joyungki님의 노트

Profile_img_60x60_01
0

python_socket

 python socket

 

socket(domain,[TCP|UDP])  - 소켓객체 생성

domain=AF_INET, AF_UNIX

TCP=SOCK_STREAM, UDP=SOCK_DGRAM

 

bind(host, port)  - 특정 호스트와 포트로 바인드

listen(n) - server method n-클라이언트 대기큐(1~5)

accept() - return conn, addr

recv(bufsize) - bufsize만큼의 데이터를 수신한다.

send(buf) - 소켓을 통해 데이터를 전송한다.(전체가 한번에 전송되지 않을수도 있음, 전송된 문자수가 리턴됨)

sendall(buf) - 소켓을 통해 데이터를 전송한다. (전체메시지를 모두전송함, 모두 전송후에야 리턴됨)

setsockopt(SOL_SOCKET, SO_REUSADDR,1) - 소켓을 종료하자마자 주소재사용을 허용함

accept() - 클라이언트의 연결을 받아들인다.

블로킹 모드일 때는 클라이언트가 연결을 시도할때 까지 기다린다. (conn, addr을 리턴)

close() - 소캣을 닫는다.

setblocking(True|False) - 블로킹설정

gettimeout(), settimeout(sec) - time out설정

 예제 TCP 소켓 동장예제

  1. #Server
  2. from socket import *
  3. HOST = '192.168.36.17' 
  4. PORT = '50001'
  5. s = socket(AF_INET, SOCK_STREAM)
  6. s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
  7. s.bind((HOST,PORT))
  8. s.listen(1)
  9. conn, addr = s.accept() #conn객체와 address(HOST, PORT)정보를 리턴, client 요청시까지 대기
  10. while 1:
    1. data = conn.recv(1024)
    2. if not data: break
    3. conn.send(data)
  11. conn.close() 

 

  1. #client
  2. from socket import *
  3. HOST='localhost'
  4. PORT='50001'
  5. s = socket(AF_INET, SOCK_STREAM)
  6. s.connect((HOST, PORT))

 

History

Last edited on 06/20/2007 17:14 by joker

Comments (0)

You must log in to leave a comment. Please sign in.