본문 바로가기
Coding/Python

파이썬 소켓 프로그래밍

by Hide­ 2014. 8. 13.
반응형

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