통신 중 오류 발생 시 노트

2020.03.08
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)
뒤흔들다

좋은 웹페이지 즐겨찾기