0
我該如何啓動一個簡單的python服務器,它將允許我連接到某些外部源的套接字?簡單的Python服務器
我已經試過:
import SocketServer
class MyUDPHandler(SocketServer.BaseRequestHandler):
def handle(self):
data = self.request[0].strip()
socket = self.request[1]
print "%s wrote:" % self.client_address[0]
print data
socket.sendto(data.upper(), self.client_address)
if __name__ == "__main__":
HOST, PORT = "localhost", 80
try:
server = SocketServer.UDPServer((HOST, PORT), MyUDPHandler)
print("works")
server.serve_forever()
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((socket.gethostname(), 80))
serversocket.listen(5)
except:
print("nope")
while True:
(clientsocket, address) = serversocket.accept()
ct = client_thread(clientsocket)
ct.run()
但是當我送點東西給服務器我沒有得到任何信息。我如何更改此代碼以查看是否有人正在發送一些數據?
編輯
現在我發現這個代碼:
class mysocket:
"""demonstration class only
- coded for clarity, not efficiency
"""
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
else:
self.sock = sock
def connect(self, host, port):
self.sock.connect((host, port))
def mysend(self, msg):
totalsent = 0
while totalsent < MSGLEN:
sent = self.sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError("socket connection broken")
totalsent = totalsent + sent
def myreceive(self):
msg = ''
while len(msg) < MSGLEN:
chunk = self.sock.recv(MSGLEN-len(msg))
if chunk == '':
raise RuntimeError("socket connection broken")
msg = msg + chunk
return msg
,但如何使用這個東西只聽插座和接收數據發送?
您想承載套接字,還是連接到遠程服務器上的某個套接字? – 2010-11-09 22:04:35
我想主持套接字進一步使用。只是閱讀文檔,所以我還沒有嘗試過任何東西。 – decarbo 2010-11-09 22:21:30