python 클 라 이언 트 와 서버 의 통신 실현
4137 단어 python클 라 이언 트서비스 센터커 뮤 니 케 이 션
Socket 대상 방법:
서버:
함수.
묘사 하 다.
.bind()
귀속 주소 키워드,AFINET 아래 에 원 그룹 으로 주 소 를 표시 합 니 다.상용 bind(host,port)
.listen()
TCP 를 감청 하면 걸 수 있 는 최대 연결 수 입 니 다.이 값 은 최소 1 이 고 보통 5 로 설정 하면 됩 니 다.
.accept()
TCP 클 라 이언 트 의 연결 을 수 동적 으로 받 아들 입 니 다.
클 라 이언 트:
함수.
묘사 하 다.
.connect()
서버 연결 초기 화
.connect_ex()
connect()함수 에 대한 확장 입 니 다.오류 가 발생 했 을 때 오류 코드 를 되 돌려 주 고 이상 을 알 리 지 않 습 니 다.
다른 함수:
함수.
묘사 하 다.
.recv()
데 이 터 를 받 습 니 다.데 이 터 는 문자열 로 되 돌아 갑 니 다.bufsize 는 받 은 최대 데 이 터 를 지정 합 니 다.
.send()
데 이 터 를 보 내 고 string 의 데 이 터 를 연 결 된 소켓 에 보 냅 니 다.반환 값 은 보 낼 바이트 의 수량 입 니 다.보통'encode()함수 로 데 이 터 를 변환 합 니 다.
.senddall()
전체 데 이 터 를 보 내 고 되 돌아 오기 전에 모든 데 이 터 를 보 내 려 고 시도 합 니 다.None 으로 돌아 가 는 데 성공 하면 실 패 했 을 때 이상 을 던 집 니 다.
.recvfrom()
recv()함수 와 유사 합 니 다.다른 것 은 반환 값(data,address)입 니 다.그 중에서 data 는 데 이 터 를 받 는 문자열 을 포함 하고 address 는 데 이 터 를 보 내 는 소켓 주소 입 니 다.
.sendto()
UDP 데 이 터 를 보 내 고 소켓 에 데 이 터 를 보 냅 니 다.형식 은(ipaddr,port)의 원본 그룹 입 니 다.
.close()
소켓 닫 기
서버
socket 함 수 를 사용 하여 socket 대상 을 만 들 고 socket 서 비 스 를 설정 한 다음 bid(hostname,port)함 수 를 통 해 포트 를 지정 합 니 다.socket 대상 의 accept 방법 을 사용 하여 클 라 이언 트 의 연결 을 기다 리 고 connection 대상 을 되 돌려 줍 니 다.
구체 적 인 절 차 는:
serversocket=socket()
serversocket.bind()
serversocket.listen()
while ,
while True:
serverclient=serversocket.accept()
while True:
#
serverclient.recv()
serverclient.send()
#
serverclient.close()
serversocket.close()
구체 적 인 코드 구현:
import socket
import sys
import time
serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host=socket.gethostname()#
port=9999
#
serversocket.bind((host,port))
#
serversocket.listen(5)
while True:
print(' , ')
clientsocket,addr=serversocket.accept()
print(' :%s' % str(addr))
while True:
try:
data=clientsocket.recv(1024)
except Exception:
print(' :',addr)
break
print(' :',data.decode('utf-8'))
reply=input(' :').strip()
if not reply:
break
msg=time.strftime('%Y-%m-%d %X')#
msg1='[%s]:%s'% (msg,reply)
clientsocket.send(msg1.encode('utf-8'))
clientsocket.close()
serversocket.closel()
실현 기능:while 를 통 해 클 라 이언 트 가 보 낸 데 이 터 를 순환 적 으로 수신 하고 클 라 이언 트 가 보 낸 데 이 터 를 표시 하고 클 라 이언 트 에 게 데 이 터 를 되 돌려 주 며 클 라 이언 트 에 게 보 낸 데이터 정 보 를 되 돌려 주 고 시간 스탬프 를 추가 합 니 다.클 라 이언 트
이상 의 서 비 스 를 연결 하 는 클 라 이언 트 를 만 듭 니 다.socket.connect()방법 으로 TCP 연결 을 호스트 에 열 고 연결 하면 서버 에서 데 이 터 를 가 져 와 작업 이 끝 난 후에 연결 을 닫 을 수 있 습 니 다.구체 적 인 절 차 는'`클 라 이언 트 를 만 드 는 소켓 client=socket()서버 client.connect()에 연결 하여 데 이 터 를 보 내 고 받 으 려 고 시도 합 니 다 client.send()client.recv()클 라 이언 트 소켓 client.close()``*구체 적 인 코드 구현:***
import socket
import sys
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host=socket.gethostname()
port=9999
s.connect((host,port))
while True:
data= input('>>').strip()
if not data:
break
s.send(data.encode('utf-8'))
msg=s.recv(1024)
if not msg:
break
print(msg.decode('utf-8'))
s.close()
테스트cmd 명령 행 을 사용 하여 코드 가 있 는 파일 디 렉 터 리 를 열 고 python 서버 파일 이름.py 를 실행 하고 cmd 명령 인터페이스 를 열 어 python 클 라 이언 트 파일 이름.py 를 실행 합 니 다.
pycharm 에서 서버 코드 를 실행 합 니 다.실행 결과:
cmd 에서 클 라 이언 트 코드 를 실행 합 니 다.실행 결과:
이상 은 python 이 클 라 이언 트 와 서버 의 통신 을 실현 하 는 상세 한 내용 입 니 다.python 클 라 이언 트 와 서버 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.