#coding=utf-8
#一个套接字服务端
import socket
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print 'waiting for connection...'
#接受数据,形成一个新的字套接字
tcpCliSock, addr = tcpSerSock.accept()
print '...connected from :', addr
while True:
#接受字套接字的数据
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
#返回数据
tcpCliSock.send('[%s] %s' % (ctime(), data))
tcpCliSock.close()
tcpSerSock.close()
#coding=utf-8
#套接字客户端
import socket
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST,PORT)
#创建一个套接字
tcpCliSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接套接字
tcpCliSock.connect(ADDR)
while True:
data = raw_input('> ')
if not data:
break
#发送数据
tcpCliSock.send(data)
#接受返回的数据
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
print data
tcpCliSock.close()
创建SocketServer TCP服务器
import SocketServer
import time
HOST = ''
PORT = 21568
ADDR = (HOST,PORT)
class MyREquestHandler(SocketServer.StreamRequestHandler):
def handle(self):
print '..connercted from:',self.client_address
self.wfile.write('[%s] %s' % (time.ctime(),self.rfile.readline()))
tcpServ = SocketServer.TCPServer(ADDR,MyREquestHandler)
print 'wating for connection...'
tcpServ.serve_forever()
创建SocketServer TCP 客户端
# coding=utf-8
# 套接字客户端
import socket
HOST = 'localhost'
PORT = 21568
BUFSIZ = 1024
ADDR = (HOST, PORT)
while True:
tcpCilent = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpCilent.connect(ADDR)
data = raw_input('> ')
if not data:
break
tcpCilent.send('%s\r\n' % data)
data = tcpCilent.recv(BUFSIZ)
if not data:
break
print data.strip()
tcpCilent.close()
Twisted Reactor 时间戳TCP服务器
# coding=utf-8
# Twisted Reactor TCP Sever
from twisted.internet import protocol, reactor
import time
PORT = 21567
class TTServProtocol(protocol.Protocol):
def connectionMade(self):
clnt = self.clnt = self.transport.getPeer().host
print '....connected from:', clnt
def dataReceived(self, data):
self.transport.write('[%s] %s' % (time.ctime(), data))
factory = protocol.Factory()
factory.protocol = TTServProtocol
print 'wating for connection...'
reactor.listenTCP(PORT, factory)
reactor.run()
Twisted Reactor 时间戳TCP客户端
# coding=utf-8
from twisted.internet import protocol, reactor
HOST = 'localhost'
PORT = 21567
class TSCIntProtocol(protocol.Protocol):
def sendData(self):
data = raw_input('> ')
if data:
print '...seding %s ...' % data
self.transport.write(data)
else:
self.transport.loseConnection()
def connectionMade(self):
self.sendData()
def dataReceived(self, data):
print data
self.sendData()
class TSClntFactory(protocol.ClientFactory):
protocol = TSCIntProtocol
clientConnectionLost = clientConnectionFailed = lambda self, connector, reason: reactor.stop()
reactor.connectTCP(HOST, PORT, TSClntFactory())
reactor.run()