无法成功执行程序,给出"错误:地址已在使用"

时间:2017-06-23 19:31:56

标签: python sockets

我正在使用网络模块,与客户端和服务器建立连接。 服务器代码如下:

import socket

def Main():
    host = '127.0.0.1'
    port = 5000

    s = socket.socket()
    s.bind((host,port))

    s.listen(1)
    c, addr = s.connect()
    print "Connection from: " + str(addr)
    while True:
        data = c.recv(1024)
        if not data:
            break
        print "from connected user: " + str(data)
        data = str(data).upper()
        print "sending: " + str(data)
        c.send(data)
    c.close()

if __name__ == '__main__':
    Main()

客户端代码如下:

import socket

def Main():
    host = '127.0.0.1'
    port = 5000

    s = socket.socket()
    s.connect((host, port))

    message = raw_input("-> ")
    while message != 'q':
        s.send(message)
        data = s.recv(1024)
        print 'Received from server: ' + str(data)
        message = raw_input("-> ")
    s.close()

if __name__ == '__main__':
    Main()

但无法成功执行程序,提供已使用的错误地址。

1 个答案:

答案 0 :(得分:0)

使用命令netstat -nlp并在列表中找到上面提到的端口。您也会找到相同的端口和相应的PID,要么通过kill -9杀死该进程,要么您可以转到相应的代码并更改端口号。

其次,最好使用localhost而不是'127.0.0.1'。 你的服务器代码中也存在一个问题,而不是这个语句'c,addr = s.connect()'你需要写一个'c,addr = s.connect()'。你也需要接受传入连接,然后与它连接。你错过了接收传入连接。