質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

Q&A

解決済

1回答

5194閲覧

socketでのbindでエラー

Yoshiyoshida

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

0グッド

0クリップ

投稿2018/07/20 15:36

前提・実現したいこと

socket初心者です。
pythonのsocketでチャットアプリを作ろうとしています。
サーバサイドのコードでどうしてもエラーが発生します。
多分bindでエラーが発生していると思うのですが、対処方法がわかりません。
どうやったやエラーが取れますか??

発生している問題・エラーメッセージ

Traceback (most recent call last):
File "server_thread.py", line 90, in <module>
ss.socket_server_up()
File "server_thread.py", line 20, in socket_server_up
sock.bind((self.host, self.port))
socket.gaierror: [Errno 8] nodename nor servname provided, or not known

該当のソースコード

import json
import socket
import threading
import requests

class SocketServer():

def __init__(self): self.host = socket.gethostname() self.port = 50006 self.clients = [] def socket_server_up(self): # ソケットサーバ作成(IPv4, TCP) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 接続待ちするサーバのホスト名とポート番号を指定 #try: sock.bind((self.host, self.port))

:
:
:
:
if name == "main":
print("サーバーを立ち上げます")
ss = SocketServer()
ss.socket_server_up()

試したこと

self.host = "localhost"とやってもダメでした。

補足情報(FW/ツールのバージョンなど)

python3です。
数時間前まではできていました。
Gitに上げてからなぜかできなくなりました。(直接的な原因かはわかりません)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こちらの環境では再現しませんでした。
Windows 10,Anaconda

socket.gaierror: [Errno 8] nodename nor servname provided, or not known

Google翻訳
ノード名もservnameも指定されていないか、またはわからない

print(self.host)を追加してsocket.gethostnameの戻り値を確認してくださいな。
ローカルホストでバインドするだけなら、ループバックアドレス(127.0.0.1)を指定すればいいと思います。

Python

1self.host = "127.0.0.1"

チャットアプリ

socketモジュールを使うより、より抽象化されているsocketserverモジュールを使うか、もしくはWebSocketで作成されることをお勧め致します。


質問文のソースコードの書き方は以下の画像を参照して編集してくださいな。
コードの書き方

投稿2018/07/20 20:26

編集2018/07/20 20:43
umyu

総合スコア5846

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問