티스토리 뷰

Python

Python,module socket [소켓통신]

hwangyoungjae 2016. 5. 24. 14:35
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

로우 레벨(low-level) 네트워킹 인터페이스이다.

socket은 아주 오래 전부터 사용된 개념이기 때문에 유닉스윈도우리눅스를 포함한 대부분의 플랫폼에서 사용할수 있다.

아래는 소켓으로 만든 간단한 서버와 클라이언트 예제이다

ex) socket_server.py : 소켓을 이용한 서버

# -*- coding : cp949 -*-

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()

 

ex) socket_client.py : socket_server와 통신할 클라이언트

# -*- coding : cp949 -*-

import socket

 

HOST='127.0.0.1' #localhost

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))

 

위 소스의 실행절차는 아래와 같다.

 

1. 서버실행

#socket_servet.py

 

2. 클라이언트실행

#socket_client.py

 

3. 서버측에서 연결이 되었다는 메시지 출력

Connected by ('127.0.0.1', 3006)

 

4. 클라이언트측에서 서버에서 받은 정보 출력

Received b'Hello, python'

 

 

참조 : 빠르게 활용하는 파이썬프로그래밍

'Python' 카테고리의 다른 글

Python, 웹 서버 만들기  (0) 2016.05.25
Python, 네이버검색 OpenAPI이용하기  (0) 2016.05.24
Python, 이메일보내기  (0) 2016.05.24
Python, bytes를 문자열로 변환하기  (0) 2016.05.24
Python, str(), repr(), ascii(),eval()  (0) 2016.05.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함