私は1つのスクリプト(pythonスクリプト)がサーバーをホストし、rubyスクリプトが接続した後、pythonスクリプトがプロンプトを表示し、データを接続したRubyクライアントに送信すると、rubyプログラムはシステム関数を介してコマンドを実行します。エラーはコマンドをサーバ上で終了する(pythonスクリプト)ため、コマンドを1つしか送信できません。ルビースクリプトが実行され、コマンドを受け取ったときにコマンドを実行して実行します。ここではスクリプトは、次のとおりです。PythonとRubyのソケットプログラムでエラーが発生しました。
のpython:
#!/usr/bin/env python
import socket
import time
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(('192.168.1.104',567))
sock.listen(1)
(client,(ip,port))=sock.accept()
print('[*] Connection from {} via port {}').format(ip,port)
while True:
cmd = raw_input("# ")
client.send(str(cmd))
ルビー:
class C
attr_accessor :clr
end
r = C.new
r.clr = "\033[0;31m"
d = C.new
d.clr = "\033[0;00m"
require 'socket'
def sock_setup(address,port)
@addr = address
@port = port.to_i
@socket = TCPSocket.open(@addr,port)
while TRUE
@cmd = @socket.read(1024)
puts @cmd
system(@cmd)
end
end
print("Address=> ")
@host = $stdin.gets.chomp
print("\n")
print("Port=> ")
@port_ = $stdin.gets.chomp
sock_setup(@host,@port_)