1
我是Python新手,希望得到一些幫助。我的服務器從客戶端接收任何類型的數據。我如何修改服務器代碼,使其在接收到某個文本字符串時用特定的文本字符串進行響應?Python如何檢查並響應套接字數據中的特定字符串?
E.g. 客戶端發送* 101# 和服務器使用的Hello World
響應,但如果客戶端發送* 102# 服務器將以對不起
感謝響應 格雷厄姆
服務器
from socket import *
serverHost=''
serverport=50007
#open socket to listen
sSock = socket(AF_INET,SOCK_STREAM)
sSock.bind((serverHost,serverport))
sSock.listen(3)
#handle connection
while 1:
conn,addr = sSock.accept()
print ('Client Connection:', addr)
while 1:
data = conn.recv(1024)
if not data: break
print (' Server Received:', data)
newData = data.replace('Client','Processed')
conn.send(newData)
conn.close()
客戶端
import sys
from socket import *
serverHost = 'localhost'
serverPort = 50007
message = ['*325#']
if len(sys.argv) > 1:
serverHost = sys.argv[1]
#create my socket
sSock = socket(AF_INET, SOCK_STREAM)
#connect to server
sSock.connect((serverHost, serverPort))
#send a message
for item in message:
sSock.send(item)
data = sSock.recv(1024)
print ('Client received: ', 'data')
sSock.close()