본문으로 바로가기

파이썬 소켓 프로그래밍

category Coding/Python 2014. 8. 13. 10:08
반응형

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
파이썬 소켓 프로그래밍  (0) 2014.08.13
Python Blind,Time Based SQL Injection Source  (0) 2014.06.15

댓글을 달아 주세요