繁体   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