python中的套接字

python中的套接字,python,sockets,Python,Sockets,我试着做客户端和服务器,看看我做了什么 #Server import socket Host='' Port=305 OK=socket.socket() OK.bind((Host,Port)) OK.listn(1) OK.accept() 另一个是给客户的 #Client impot socket Host='192.168.1.4' Port=305 OK=socket.socket() OK.connect((Host,Port)) 第一件事:目前一切正常,但我想在客户端连接

我试着做客户端和服务器,看看我做了什么

#Server
import socket
Host=''
Port=305
OK=socket.socket()
OK.bind((Host,Port))
OK.listn(1)
OK.accept()
另一个是给客户的

#Client 
impot socket 
Host='192.168.1.4' 
Port=305
OK=socket.socket()
OK.connect((Host,Port))
第一件事:目前一切正常,但我想在客户端连接到服务器时: 服务器在客户端屏幕中打印“Hello Admin”

第二件事:我想要像输入一样的命令!像

COM=raw_input('enter you command system:')

然后客户端输入
dir
,例如,然后服务器在客户端屏幕中打印结果。当您创建连接时,故事还没有结束。现在是通过连接发送数据的时候了。创建一个简单的“协议”(*),并使用它将数据从客户端传输到服务器和/或后端。一个简单的例子是由换行符分隔的命令的文本协议-这类似于HTTP


(*)协议:双方就通信格式达成的协议。

建立连接时,故事还没有结束。现在是通过连接发送数据的时候了。创建一个简单的“协议”(*),并使用它将数据从客户端传输到服务器和/或后端。一个简单的例子是由换行符分隔的命令的文本协议-这类似于HTTP


(*)协议:双方就通信格式达成的协议。

看这里,这是一个用Python编写的简单echo服务器


看这里,这是一个用Python编写的简单echo服务器


我想你可能想做这样的事情:

 client, addr = OK.accept()
 client.send("Hello Admin")
然后使用

data = client.recv(1024)
从客户端获取数据

 from commands import getoutput
 client.send(getoutput(client.recv(1024)))
如果希望从客户机获取命令输入,只需执行客户机发送的命令并将输出发送回客户机

 from commands import getoutput
 client.send(getoutput(client.recv(1024)))

这是可能的最简单的解决方案。

我想你可能想做如下事情:

 client, addr = OK.accept()
 client.send("Hello Admin")
然后使用

data = client.recv(1024)
从客户端获取数据

 from commands import getoutput
 client.send(getoutput(client.recv(1024)))
如果希望从客户机获取命令输入,只需执行客户机发送的命令并将输出发送回客户机

 from commands import getoutput
 client.send(getoutput(client.recv(1024)))
这是最简单的解决方案。

对于客户:

import os

import sys

impot socket

Host=raw_input ("Please enter ip : ")

Port=raw_input ("please Enter port :")

OK=socket.socket()

OK.connect((Host,Port))

print " Enter Command")

cmd = raw_input()

os.system(cmd)
对于客户:

import os

import sys

impot socket

Host=raw_input ("Please enter ip : ")

Port=raw_input ("please Enter port :")

OK=socket.socket()

OK.connect((Host,Port))

print " Enter Command")

cmd = raw_input()

os.system(cmd)

我认为您的代码有一个问题: 您似乎有
OK=socket.socket()
,但我认为应该是:
OK=socket.socket(socket.AF\u INET,socket.STREAM)
,这将有助于您建立连接。您的服务器出现问题:
OK。列表n(1)
应该是
OK。请听(1)
。还有,不要忘记
send()
recv()

哪个对客户有效

#Server
import socket
import os
Host=''
Port=305
OK=socket.socket(socket.AF_INET, socket.STREAM)
OK.bind((Host,Port))
OK.listen(1)
conn, addr = OK.accept()
while True:
    data = conn.recv(2048) #Change the buffer if needed
    if data == "":
        break
    r = os.system(data)
    conn.send(str(r)) #Note this will send 0 or 1, 0 = ran, 1 = error

注意:这些修复程序适用于Windows,我不了解Unix系统。*

我认为您的代码有一个问题: 您似乎有
OK=socket.socket()
,但我认为应该是:
OK=socket.socket(socket.AF\u INET,socket.STREAM)
,这将有助于您建立连接。您的服务器出现问题:
OK。列表n(1)
应该是
OK。请听(1)
。还有,不要忘记
send()
recv()

哪个对客户有效

#Server
import socket
import os
Host=''
Port=305
OK=socket.socket(socket.AF_INET, socket.STREAM)
OK.bind((Host,Port))
OK.listen(1)
conn, addr = OK.accept()
while True:
    data = conn.recv(2048) #Change the buffer if needed
    if data == "":
        break
    r = os.system(data)
    conn.send(str(r)) #Note this will send 0 or 1, 0 = ran, 1 = error

注意:这些修复程序适用于Windows,我不知道Unix系统。*

伙计,我需要清楚的答案,并附上我听说的关于recv和send的代码,但我尝试了一下,但效果不一样!伙计,我需要清楚的答案和代码,我听说了recv和send,但我尝试了,但它的工作方式不一样!你好谁都能回答!?你好谁都能回答!?