簡體   English   中英

Python中的簡單TCP EchoServer

[英]Simple TCP EchoServer in Python

我發現此TCP服務器腳本將數據回顯到客戶端。

#!/usr/bin/env python 

import socket

host = ''
port = 50000
backlog = 5 
size = 1024 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host,port)) 
s.listen(backlog) 
while 1: 
    client, address = s.accept() 
    data = client.recv(size) 
    if data: 
        client.send(data) 
    client.close()

我正在嘗試測試並理解它,然后我才能自己做一些事情並進行修改,但是我遇到了一些問題。 當我嘗試運行.py腳本時,在終端中出現以下錯誤(使用Ubuntu 14.04 LTS)

> Traceback (most recent call last):
  File "echo.py", line 14, in <module>
    s.bind((host,port))
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use

我的Python版本是2.7.6

代碼有問題嗎?還是我做錯了?

更新:

更糟糕的是,我用bind(host, port)運行的任何腳本都會給我同樣的錯誤。

任何幫助,將不勝感激

也許您不小心在不同的窗口中兩次運行了EchoServer? 您只能將一個接收器綁定到端口/地址組合。

好像在這些端口上運行着其他應用程序。

您可以使用以下方法嘗試檢查是否有其他應用程序在同一端口上偵聽:

netstat -ntlpu | grep 50000

綁定服務器有點混亂,但是您必須使用元組。 正確的方法是server.bind((host, port))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM