【问题标题】:Socket And Client response套接字和客户端响应
【发布时间】:2017-05-28 15:13:50
【问题描述】:

现在我只需要在我完成一次测试后服务器仍然可以连接, 就像如果我写 str 命令“时间”我得到了时间并且仍然可以连接服务器我尝试添加一些“if”语句并为“选择”输入做 while,但我仍然无法完成这项工作我总是得到空白响应并与服务器断开连接,感谢您的帮助,对英语感到抱歉。

我需要一些有关此代码的帮助:

import socket
import time

server = socket.socket()
server.bind(('127.0.0.1', 8820))
server.listen(1)
(client_socket, client_address) = server.accept()
client_rq = client_socket.recv(1024)
b = time.ctime()


if client_rq == "name":
    client_socket.send('the server name is london project')

if client_rq == "help":
    client_socket.send('for help with this server connect @gmail.com')

if client_rq == "time":
    client_socket.send(b)

server.close()

这是客户:

import socket
client = socket.socket()
client.connect(('127.0.0.1', 8820))

x = raw_input("choice: ")
client.send(x)
data = client.recv(1024)
print data

client.close()

【问题讨论】:

    标签: python sockets server client


    【解决方案1】:

    在服务器中循环:

    import socket
    import time
    
    server = socket.socket()
    server.bind(('127.0.0.1', 8820))
    server.listen(1)
    while True:
        client_socket, client_address = server.accept()
        client_rq = client_socket.recv(1024)
        b = time.ctime()
    
        if client_rq == "name":
            client_socket.send('the server name is london project')
    
        if client_rq == "help":
            client_socket.send('for help with this server connect @gmail.com')
    
        if client_rq == "time":
            client_socket.send(b)
    
        if client_rq == "quit":
            break # from the loop
    
    server.close()
    

    从客户端发送“退出”以打破循环并退出服务器。

    【讨论】:

    • 谢谢你的工作,但我仍然无法在我在客户端上完成之前完成这项工作,而且我无法创建像 ['name', 'time', 'exit' 这样的“命令”元组] 像 'bla bla' 这样的所有内容都会使服务器做出响应,并且如果 client_rq 不是 [a b c d],则原始输入不会发送我尝试的字符串
    • client_rq 不是 [a, b, c, d]。没有逗号,所有字符串连接成一个。
    猜你喜欢
    • 2018-05-23
    • 2013-10-23
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多