簡體   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