Python套接字聊天问题

时间:2015-12-14 09:28:09

标签: python sockets

我有客户端和服务器示例代码。我可以从客户端发送消息到服务器,我无法从服务器到客户端接收消息。问题是什么?

Server.py文件

#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;

Client.py文件

#client
import socket;
import time;

HOST = "localhost";
PORT = 5454;
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);
s.connect((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;

上述代码的问题是什么......

我第一次可以将mesage从客户端发送到服务器。无法将消息服务器发送到clint。必须等待更多时间....但没有回应。帮助我

1 个答案:

答案 0 :(得分:1)

您希望收到的数据是您发送的数据的两倍。

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

  if data=="bye" or s.recv(1024)=="bye":

每次调用receive都会等待套接字上的数据。存储先收到的消息,然后操纵该消息。

  msg = s.recv(1024)
  print "Server says: " + msg
  if data=="bye" or msg=="bye":