forked from I2P_Developers/i2p.i2p
Updated Python I2P version 0.91 by sunshine
This commit is contained in:
26
apps/sam/python/src/examples/cgi_server.py
Normal file
26
apps/sam/python/src/examples/cgi_server.py
Normal file
@@ -0,0 +1,26 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# cgi_server.py: Simple CGI server
|
||||
# -----------------------------------------------
|
||||
|
||||
myServerSession = "mytestxxx.i2p"
|
||||
|
||||
from i2p import BaseHTTPServer, CGIHTTPServer
|
||||
|
||||
class MyServer(BaseHTTPServer.HTTPServer):
|
||||
pass
|
||||
|
||||
class MyRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler):
|
||||
pass
|
||||
|
||||
def runServer():
|
||||
|
||||
httpd = MyServer(myServerSession, MyRequestHandler)
|
||||
print "MyServer: local SAM session = %s" % myServerSession
|
||||
print "MyServer: dest = %s" % httpd.socket.dest
|
||||
httpd.serve_forever()
|
||||
|
||||
if __name__ == '__main__':
|
||||
runServer()
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# datagram.py: Datagram client
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
dest = sam.resolve('yourserver.i2p')
|
||||
S = sam.socket('Bob', sam.SOCK_DGRAM)
|
||||
print 'Sending a packet to yourserver.i2p...'
|
||||
|
||||
dest = socket.resolve('yourserver.i2p')
|
||||
S = socket.socket('Bob', socket.SOCK_DGRAM)
|
||||
S.sendto('Hello packet', 0, dest)
|
||||
|
||||
# Get packet up to 1000 bytes -- the rest is discarded.
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# ---------------------------------------------------
|
||||
# datagram_noblock.py: Non-blocking datagram server
|
||||
# ---------------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
import time
|
||||
|
||||
S = sam.socket('Eve', sam.SOCK_DGRAM)
|
||||
S = socket.socket('Eve', socket.SOCK_DGRAM)
|
||||
print 'Serving at:', S.dest
|
||||
S.setblocking(False)
|
||||
|
||||
@@ -15,6 +16,6 @@ while True:
|
||||
(data, dest) = S.recvfrom(1000) # Read packet
|
||||
print 'Got', data, 'from', dest
|
||||
S.sendto('Hi client!', 0, dest)
|
||||
except sam.BlockError: # No data available
|
||||
except socket.BlockError: # No data available
|
||||
pass
|
||||
time.sleep(0.01) # Reduce CPU usage
|
||||
time.sleep(0.01) # Reduce CPU usage
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# datagram_server.py: Datagram server
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
S = sam.socket('Eve', sam.SOCK_DGRAM)
|
||||
S = socket.socket('Eve', socket.SOCK_DGRAM)
|
||||
print 'Serving at:', S.dest
|
||||
|
||||
while True:
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# dos.py: Noneffective denial of service tool
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
import threading, sys
|
||||
|
||||
def dos_stream(dest):
|
||||
"""Perform a DOS attack on a stream server."""
|
||||
dest = sam.resolve(dest)
|
||||
dest = socket.resolve(dest)
|
||||
|
||||
# DOS code, runs in n separate threads.
|
||||
def f():
|
||||
while True:
|
||||
S = sam.socket(dest, sam.SOCK_STREAM)
|
||||
S = socket.socket(dest, socket.SOCK_STREAM)
|
||||
S.connect(dest)
|
||||
S.send('GET / HTTP/1.0\r\n\r\n')
|
||||
S.close()
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
myServerAddress = "mytestxxx.i2p"
|
||||
|
||||
from i2p import I2PBaseHTTPServer, I2PCGIHTTPServer
|
||||
|
||||
class MyServer(I2PBaseHTTPServer.HTTPServer):
|
||||
pass
|
||||
|
||||
class MyRequestHandler(I2PCGIHTTPServer.CGIHTTPRequestHandler):
|
||||
pass
|
||||
|
||||
def runServer():
|
||||
|
||||
httpd = MyServer(myServerAddress, MyRequestHandler)
|
||||
print "MyServer: local address = %s" % myServerAddress
|
||||
print "MyServer: dest = %s" % httpd.socket.dest
|
||||
httpd.serve_forever()
|
||||
|
||||
if __name__ == '__main__':
|
||||
runServer()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
Examples:
|
||||
|
||||
cgi_server.py - Example of CGIHTTPServer
|
||||
datagram.py - Datagram client
|
||||
datagram_noblock.py - Non-blocking datagram server
|
||||
datagram_server.py - Blocking datagram server
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# raw.py: Raw client
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
dest = sam.resolve('yourserver.i2p') # Send to dest
|
||||
S = sam.socket('Carol', sam.SOCK_RAW)
|
||||
dest = socket.resolve('yourserver.i2p') # Send to dest
|
||||
S = socket.socket('Carol', socket.SOCK_RAW)
|
||||
S.sendto('Hello packet', 0, dest)
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# ---------------------------------------------------
|
||||
# raw_noblock.py: Non-blocking raw server
|
||||
# ---------------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
import time
|
||||
|
||||
S = sam.socket('Eve', sam.SOCK_RAW)
|
||||
S = socket.socket('Eve', socket.SOCK_RAW)
|
||||
print 'Serving at:', S.dest
|
||||
S.setblocking(False)
|
||||
|
||||
@@ -14,6 +15,6 @@ while True:
|
||||
try:
|
||||
data = S.recv(1000) # Read packet
|
||||
print 'Got', data
|
||||
except sam.BlockError: # No data available
|
||||
except socket.BlockError: # No data available
|
||||
pass
|
||||
time.sleep(0.01) # Reduce CPU usage
|
||||
@@ -1,11 +1,12 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# raw_server.py: Raw server
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
S = sam.socket('Eve', sam.SOCK_RAW)
|
||||
S = socket.socket('Eve', socket.SOCK_RAW)
|
||||
print 'Serving at:', S.dest
|
||||
|
||||
while True:
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# stream.py: Simple stream client
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
S = sam.socket('Alice', sam.SOCK_STREAM)
|
||||
S = socket.socket('Alice', socket.SOCK_STREAM)
|
||||
S.connect('duck.i2p')
|
||||
S.send('GET / HTTP/1.0\r\n\r\n') # Send request
|
||||
print S.recv(1000) # Read up to 1000 bytes
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# stream_eepget.py: Get an eepsite using sockets
|
||||
# -----------------------------------------------
|
||||
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
S = sam.socket('Alice', sam.SOCK_STREAM)
|
||||
S = socket.socket('Alice', socket.SOCK_STREAM)
|
||||
S.connect('duck.i2p')
|
||||
S.send('GET / HTTP/1.0\r\n\r\n') # Send request
|
||||
f = S.makefile() # File object
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# stream_noblock.py: Non-blocking stream server
|
||||
# -----------------------------------------------
|
||||
|
||||
import i2p
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
import thread, time
|
||||
|
||||
S = sam.socket('Dave', sam.SOCK_STREAM)
|
||||
S = socket.socket('Dave', socket.SOCK_STREAM)
|
||||
S.listen(10) # Queue up to 10 connections
|
||||
S.setblocking(False) # Non-blocking
|
||||
print 'Serving at:', S.dest
|
||||
@@ -25,15 +26,15 @@ def handle_connection(C):
|
||||
|
||||
f.close() # Close file
|
||||
C.close() # Close connection
|
||||
except sam.Error, e:
|
||||
# Recover from SAM errors
|
||||
except socket.Error, e:
|
||||
# Recover from socket errors
|
||||
print 'Warning:', str(e)
|
||||
|
||||
while True:
|
||||
try:
|
||||
(C, remotedest) = S.accept() # Get a connection
|
||||
thread.start_new_thread(handle_connection, (C,))
|
||||
except sam.BlockError:
|
||||
except socket.BlockError:
|
||||
# Ignore 'command would have blocked' errors
|
||||
pass
|
||||
time.sleep(0.01) # Reduce CPU usage
|
||||
@@ -1,12 +1,13 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
# -----------------------------------------------
|
||||
# stream_server.py: Simple stream server
|
||||
# -----------------------------------------------
|
||||
|
||||
import i2p
|
||||
from i2p import sam
|
||||
from i2p import socket
|
||||
|
||||
S = sam.socket('Dave', sam.SOCK_STREAM)
|
||||
S = socket.socket('Dave', socket.SOCK_STREAM)
|
||||
S.listen(10) # Queue up to 10 connections
|
||||
print 'Serving at:', S.dest
|
||||
|
||||
@@ -23,6 +24,6 @@ while True:
|
||||
|
||||
f.close() # Close file
|
||||
C.close() # Close connection
|
||||
except sam.Error, e:
|
||||
# Recover from SAM errors
|
||||
except socket.Error, e:
|
||||
# Recover from socket errors
|
||||
print 'Warning:', str(e)
|
||||
|
||||
Reference in New Issue
Block a user