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 소켓 동장예제
- #Server
- from socket import *
- HOST = '192.168.36.17'
- PORT = '50001'
- s = socket(AF_INET, SOCK_STREAM)
- s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
- s.bind((HOST,PORT))
- s.listen(1)
- conn, addr = s.accept() #conn객체와 address(HOST, PORT)정보를 리턴, client 요청시까지 대기
- while 1:
- data = conn.recv(1024)
- if not data: break
- conn.send(data)
- conn.close()
- #client
- from socket import *
- HOST='localhost'
- PORT='50001'
- s = socket(AF_INET, SOCK_STREAM)
- s.connect((HOST, PORT))
History
Last edited on 06/20/2007 17:14 by joker
Comments (0)