Python客户端和服务器聊天

Python客户端和服务器聊天,python,client-server,Python,Client Server,我正在尝试用Python实现一个非常基本的客户机和服务器聊天,虽然遇到了一些问题,但得到的回答是,我只能同时运行客户机或服务器,而不能同时运行两者,因此我无法聊天 客户端代码: #client import socket import time HOST = "localhost" PORT = 5454 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind((HOST,PORT)) while True: dat

我正在尝试用Python实现一个非常基本的客户机和服务器聊天,虽然遇到了一些问题,但得到的回答是,我只能同时运行客户机或服务器,而不能同时运行两者,因此我无法聊天

客户端代码:

#client
import socket
import time

HOST = "localhost"
PORT = 5454
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((HOST,PORT))
while True:

      data = raw_input("Enter..... ")
      s.sendto(data,(Host,PORT))

      print "Server says: " + s.recv(1024)

      if data=="bye" or s.recv(1024)=="bye":
           print "Exiting..........."
           time.sleep(1)
           break
服务器代码:

#server
import socket
import time

HOST = "localhost"
PORT = 5454
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((HOST,PORT))
while True:

      print "Client says: " + s.recv(1024)

      data = raw_input("Enter..... ")  
      s.sendto(data,(HOST, PORT))

      if data=="bye" or s.recv(1024)=="bye":
           print "Exiting.................."
           time.sleep(1)
           break
程序关闭后,端口是否会自动关闭,或者我是否需要手动关闭端口。

第页有套接字的示例代码,您可以很容易地适应您的程序

在您的脚本中,第一个问题是:

s.bind((HOST,PORT))#for client
因为,服务器绑定到ip,而不是客户端,客户端将使用以下功能连接到服务器:

s.connect((HOST,PORT))

另一个问题是,您没有监听新连接并接受它们:

s.listen(1)  #number defines amount of queued connection to server
conn, addr = s.accept()
最后一个错误是,如果客户机连接到服务器,甚至不确定是否将数据发送到客户机

希望我能帮你解决这个问题。
KubaBest

在客户端,您不想绑定,但需要连接。但这并不是这里唯一的错误,看看socket文档中的。