簡體   English   中英

使用Python將命令發送到套接字

[英]Send commands to a socket with Python

我正在嘗試連接到套接字文件並向其發送一些命令:

#!/usr/bin/env python

import socket

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/var/run/socket")
s.send('a command here')
data = s.recv(1024)
s.close()
print 'Received', repr(data)

我錯過了什么 ?

我對Python完全陌生。

在此先感謝您的幫助!

您沒有說出實際的問題是什么,也沒有顯示任何錯誤,但是這里有一些要檢查的事情。

  1. 首先,套接字實際上存在嗎?
  2. 您的客戶端python進程是否有權訪問套接字文件?
  3. 是否正在運行正在偵聽該套接字上的傳入連接的服務器進程?

請注意,您需要一個客戶端一個服務器來進行通信。 客戶端可以連接之前,服務器必須已經在運行。 服務器創建了一定不存在的套接字。

server.py

import os
import socket

address = '/tmp/socket'
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.bind(address)      # this creates the socket file
s.listen(1)
r, a = s.accept()
r.send('Hello\n')
msg = r.recv(1024)
print msg
r.close()
s.close()
os.unlink(address)    # remove the socket file so that it can be recreated on next run

運行此服務器,然后(在另一個終端中)運行您的客戶端代碼:

client.py

import socket

server_addr = '/tmp/socket'
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect(server_addr)
s.send('a command here')
data = s.recv(1024)
s.close()
print 'Received', repr(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM