통신 중 오류 발생 시 노트
Python3
Socket 통신
서점py와 서버.py를 써서 플러그인 통신을 시도했습니다
그러나 오류가 발생해 통신이 불가능할 때의 노트.
● 서버 환경
벚꽃 VSP3GB100GBSSH
Ubuntu 20.04LTS
Python3.8.5
server.py 실행 설정
● 고객 환경(자체)
Windows10 Home
Visual Studio Code
Python3.9.1(Windows Edition)
Rlogin
client.py 설정 및 실행(위 서버.py 실행 중)
Ubuntu에서 포트를 여는 방법을 모르는 사람
참조: ufw 명령 사용 방법
잠깐만요.
● 포트 번호가 좋지 않을 가능성
낡은 책에는 플러그인 통신의 포트 번호로welnown 포트 번호와
많은 포트 번호가 지정되어 있는데, 이것들은 모두 동적이다
개인 포트 번호 프로그램으로 변경하면 정상적으로 작동하고 통신할 수 있다.
통신 오류가 발생한 사람은 프로그램에서 사용하는 포트 번호를 확인하십시오.
client.py
# 2021.03.08
# ソケット通信テストプログラム
# ポートは動的・プライベートポート番号(49152-65535)を利用しないと
# つながらない!本などで8000番,8001番などを利用しているものが
# 多いので注意する。
import socket
def socketConnectClient():
PORT=49200 #動的・プライベートポート番号(49152-65535)を利用すること
SERVER='honyarara.com' #接続先のドメインかIPアドレス
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((SERVER, PORT)) # サーバを指定して接続
# s.connect((SERVER,8002)) # 仮にポート開けててもソケット通信不可!
s.sendall(b'Hello!') # サーバにメッセージを送る
data = s.recv(1024) # サーバからの文字列を取得する
print(repr(data))
if __name__ =='__main__':
socketConnectClient()
server.py# 2021.03.08
# socket サーバを作成
# Ctrl+Cで中断終了してください
import socket
SERVER='' #サーバー側は空欄でよい
PORT=49200 #動的・プライベートポート番号(49152-65535)を利用すること
def socketConnectServer():
print("ポート番号:{}でソケット通信を開始します。".format(PORT))
# AF = IPv4 という意味
# TCP/IP の場合は、SOCK_STREAM を使う
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# IPアドレスとポートを指定
s.bind((SERVER,PORT))
s.listen(10)
while True:
conn, addr = s.accept()
with conn:
while True:
# データを受け取る
data = conn.recv(1024)
if not data:
break
print('data : {}, addr: {}'.format(data, addr))
conn.sendall(b'Received: ' + data)
if __name__ == '__main__':
socketConnectServer()
print("プログラムを終了しました。")
실행 결과참조: 위키백과: TCP 및 UDP 내 포트 번호 요약
Wilnon 포트 번호(0-1023)
등록된 포트 번호(1024 – 49151)
동적 개인 포트 번호(49152–65535)
뒤흔들다
Reference
이 문제에 관하여(통신 중 오류 발생 시 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pureji1980/items/72628ee0e7d3ddc75e3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)