티스토리 뷰
로우 레벨(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' |
참조 : 빠르게 활용하는 파이썬3 프로그래밍
'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
- borderwidth
- JPA
- Excel
- Linux
- ManyToOne
- 상수
- disabledforeground
- Python
- 리눅스
- vba
- Private
- command
- apache
- onetomany
- 폼
- tkinter command & bind [명령어묶기와 사건묶기] Python
- highlightbackground
- Java
- indicatoron
- checkbutton
- Composite Key
- highlightthickness
- activebackground
- tkinter
- FetchType
- Module
- 파이썬
- fetch join
- activeforeground
- IdClass
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |