Python,如何通过 TCP 发送数据 [英] Python, How to Send data over TCP
本文介绍了Python,如何通过 TCP 发送数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要创建一个简单的服务器来监听 TCP 连接.如果它接收到文本 on
或 off
,则它发送(回显)回 success
.接收部分正在工作,但现在我需要它来发回 success
.
I need to create a simple server that listens for TCP connections.
If it receives text on<EOF>
or off<EOF>
then it sends (echo) back success
. The receiving part is working, but now i need it to send back success
.
代码:
# import threading
import SocketServer
class TCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.msg = self.request.recv(1024).strip()
if self.msg == "on<EOF>":
print "Turning On..."
#ECHO "SUCCESS<EOF>" <----- I need the server to echo back "success"
if self.msg == "off<EOF>":
print "Turning Off..."
#ECHO "SUCCESS<EOF>" <----- I need the server to echo back "success"
if __name__ == "__main__":
host, port = '192.168.1.100', 1100
# Create server, bind to local host and port
server = SocketServer.TCPServer((host,port),TCPHandler)
print "server is starting on ", host, port
# start server
server.serve_forever()
推荐答案
好吧,我是在学习一个非常好的教程前一天完成的,找不到链接,但这是代码
Well i did it a day before following a very good tutorial, cant find the link but here is the code
import socket
host = socket.gethostname()
port = 12345 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))
服务器
import socket
host = '' # Symbolic name meaning all available interfaces
port = 12345 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
print host , port
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
while True:
try:
data = conn.recv(1024)
if not data: break
print "Client Says: "+data
conn.sendall("Server Says:hi")
except socket.error:
print "Error Occured."
break
conn.close()
这篇关于Python,如何通过 TCP 发送数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文