繁体   English   中英

Python:套接字编程的.send函数

[英]Python: .send function of socket programming

我使用服务器上的此命令从客户端向服务器发送一些消息“ hello”

    #Send some data to remote server
    message = 'hello'

    try :

    s.send(message)
    print 'data sent successfully'
    except socket.error:
    #Send failed
    print 'Send failed'

现在在服务器端,我想检查此消息是否作为在服务器端创建的字典中的键出现。

    msg=c.recvfrom(1024)

     if msg in data2.keys():
 print("key for this msg exists", msg)
     else:
     print("no such key exists",msg)

现在的问题是,它总是说没有这样的键退出。 当我从客户端获得服务器端的味精时,结果是:

   ('hello', None)

我不明白为什么它会给None和您好。

因此,我什至没有在字典中找到匹配项。 请告诉我我在哪里做错了。

作为套接字状态的文档,请执行以下操作: 返回值是一个对(字符串,地址),其中string是表示接收到的数据的字符串,而address是发送数据的套接字的地址。

因此,您的('hello', None)就是这对,如果您要从中选择消息字符串以在字典中对其进行搜索,则必须使用msg[0]

如果查看socket.recvfrom()文档 ,您会看到它返回一个元组。 如果只需要数据部分,最好只调用socket.recv()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM