Server
클래스 socket(도메인, 유형) : 소켓 객체를 생성한다.
bind((host,port)) : 소켓을 host 컴퓨터의 port에 연결시킨다.
listen(n) : 연결을 원하는 클라이언트가 대기할 수 있는 큐의 크기이다.
1이상의 값을 가져야하며 최대값은 시스템에 따라 다르나 보통 5이다.
accept() : 클라이언트의 연결을 받아들인다. 블로킹모드일때 클라이언트가 연결을 시도할때까지 기다린다.
recv(bufsize) : 소켓으로부터 데이터를 읽어온다. 한번에 읽어들이는 최대 데이터의 양은 bufsize에 의해 결정된다.
send(string) : 데이터(string)를 소켓에 쓴다. 값은 한 클라이언트로 전달된다.
close() : 소켓을 닫는다.
Client
클래스 socket(도메인, 유형) : 소켓 객체를 생성한다.
connect((host, port)) : 클라이언트가 지정된 주소로 소켓 연결을 시도한다.
recv(bufsize) : 소켓으로부터 데이터를 읽어온다. 한번에 읽어들이는 최대 데이터의 양은 bufsize에 의해 결정된다.
send(string) : 데이터(string)를 소켓에 쓴다. 값은 서버로 전달된다.
close() : 소켓을 닫는다. 앞으로의 모든 소켓에 대한 연산은 실패한다.
서버 예제
클라이언트 예제
server
import socket
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by ', addr)
while True:
data = conn.recv(1024)
if not data: break
conn.send(data)
conn.close()
client
import socket
HOST = '127.0.0.1'
PORT = 50007
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(b'hello, python')
data = s.recv(1024)
s.close()
print('Received' repr(data))
from
socket
import
socket, AF_INET, SOCK_STREAM
host
=
'192.168.0.10'
port
=
80
request
=
'data'
s
=
socket(AF_INET, SOCK_STREAM)
s.connect((host, port))
s.send(request)
response
=
s.recv(
1000
)
s.close()
'Coding > Python' 카테고리의 다른 글
소켓 통신할때 Response 못받아오는 문제 (0) | 2016.01.08 |
---|---|
Selenium 경로설정 (0) | 2016.01.08 |
DB Parser (0) | 2015.12.25 |
정렬 알고리즘 (0) | 2015.03.09 |
Python Blind,Time Based SQL Injection Source (0) | 2014.06.15 |