我正在使用网络模块,与客户端和服务器建立连接。 服务器代码如下:
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()
但无法成功执行程序,提供已使用的错误地址。
答案 0 :(得分:0)
使用命令netstat -nlp并在列表中找到上面提到的端口。您也会找到相同的端口和相应的PID,要么通过kill -9杀死该进程,要么您可以转到相应的代码并更改端口号。
其次,最好使用localhost而不是'127.0.0.1'。 你的服务器代码中也存在一个问题,而不是这个语句'c,addr = s.connect()'你需要写一个'c,addr = s.connect()'。你也需要接受传入连接,然后与它连接。你错过了接收传入连接。