forked from I2P_Developers/i2p.i2p
SAM version 3 :
- Raw and Datagram sessions implemented - option "SILENT=true" added to the stream protocol - java 6 warnings removed ministreaming : - java 6 warnings removed ministreaming and streaming : - added functions : I2PServerSocket.waitIncoming(long timeout) I2PServerSocket.accept(boolean block)
This commit is contained in:
15
apps/sam/Demos/rawTests/README.txt
Normal file
15
apps/sam/Demos/rawTests/README.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
# test example
|
||||
|
||||
#in a first terminal, launch :
|
||||
./samIn.py inTest
|
||||
|
||||
#in a second terminal, launch :
|
||||
./samForward.py 25000 forward
|
||||
|
||||
#in a third terminal, launch :
|
||||
l=0
|
||||
while [ $l -lt 1000 ]
|
||||
do
|
||||
l=$((l+1))
|
||||
./samOut.py forward this is message n. $l
|
||||
done
|
36
apps/sam/Demos/rawTests/samForward.py
Executable file
36
apps/sam/Demos/rawTests/samForward.py
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import socket
|
||||
import sys
|
||||
|
||||
# create a forward style SAM raw datagram session
|
||||
# that forwards messages on specified port (default port : 25000)
|
||||
# creates a standard datagram server that listens on this port forever
|
||||
# usage : ./samForward.py [port [SAM session name]]
|
||||
|
||||
if len(sys.argv)>=2 :
|
||||
port = eval(sys.argv[1])
|
||||
else :
|
||||
port = 25000
|
||||
|
||||
if len(sys.argv)==3 :
|
||||
name = sys.argv[2]
|
||||
else :
|
||||
name = "essaiSamForward"
|
||||
|
||||
sess = socket.socket(
|
||||
socket.AF_INET, socket.SOCK_STREAM)
|
||||
sess.connect(("127.0.0.1",7656));
|
||||
sess.send("HELLO VERSION MIN=3.0 MAX=3.0\n")
|
||||
sys.stdout.write(sess.recv(1000))
|
||||
sess.send("SESSION CREATE STYLE=RAW PORT="+str(port)+" ID="+name+" DESTINATION=EYUpJFeW9tiubXR0aOjvCJ~ndj3xN0Wn-ljuGdbpOEttPg7nj0VCTOQDJ~FAolzn9FIDdmR3VjM0OFFDT46Q5HN4vShXFE2VNC8e3~GjzxJfaJhijRC2R9oIOzsNlzKtInD2o9lh0PxPioNMCigwmgWuqlQHs4tjWeaYRAtooHxbrtuoCIhIdGfyVV-nAcPiyYbouKq3leETXE~4kBXm-LfWfyPtrv6OuDk3GBVVcthv19GYBmnl2YI8HpJjc-G-TvNkgYishjzIJyEW-Xrpy43R4ZBXlyQqnheGLlbOEY8NLDbyNHLRMMOGbcr~67SVE3Iw3RqQ3Dhrkq2FCaQwcDucfIUCCbOfCZgu0hlnCkS42xsUvegQeiwMxbdI~h9v7vcR3yFFOrHX6WQvIZSbFLKNGArGJcfmOJVLqw1wTC4AgYXjk3csVDPd-QWbMXOuodyBgrg27Ds2BBYTsVXWskoo6ASsMIQZ6jMfL7PkY9dPLCRParIyzb9aPmf~MntNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHNqwgkhJnBW4ymaRsdVmITAha-ff0UiALfKSlznqp5HcSewgMHbzQ0I01TQytFnW\n")
|
||||
sys.stdout.write(sess.recv(10000))
|
||||
|
||||
# listening server
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.bind(("", port))
|
||||
print "waiting on port:", port
|
||||
while 1:
|
||||
data, addr = s.recvfrom(40000)
|
||||
print data, " received from ", addr, "length=", len(data)
|
||||
|
31
apps/sam/Demos/rawTests/samIn.py
Executable file
31
apps/sam/Demos/rawTests/samIn.py
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
|
||||
# create a SAM datagram session that writes incoming messages on its master session stream
|
||||
# and a listen forever
|
||||
# usage : ./samIn.py [session name]
|
||||
|
||||
import socket
|
||||
import sys
|
||||
|
||||
if len(sys.argv)==2 :
|
||||
name = sys.argv[1]
|
||||
else :
|
||||
name = "datagramSamIn"
|
||||
|
||||
|
||||
sess = socket.socket(
|
||||
socket.AF_INET, socket.SOCK_STREAM)
|
||||
sess.connect(("127.0.0.1",7656));
|
||||
sess.send("HELLO VERSION MIN=3.0 MAX=3.0\n")
|
||||
sys.stdout.write(sess.recv(1000))
|
||||
sess.send("SESSION CREATE STYLE=RAW ID="+name+" DESTINATION=tYhjbFlFL38WFuO5eCzTvE0UBr4RfaqWMKlekGeMoB-Ouz7nYaWfiS-9j3jMiZT7FH~pwdmoSREOs2ZbXK84sR59P~pPfeCMxnJrk57f3U9uKzXkesjkKWYco3YAGs-G8sw8Fu2FBx0Do57yBdA9~j8Zq6pMjmgPBXCLuXG3vo0Z8zUWCjApJyFY6OXYopHck9Fz9vKy7YhC6zXFHfEuNHVkAooduiLd~aCoGij0TW3lH2rTVU-lx-DUdi6edxQ5-RvDNkXfikvytoCpRkivbNVytjCJLk~7RNU4FpBD20wTZWNJmEG3OY3cjNjawJVFdNjtgczh9K7gZ7ad-NjVjZVhXEj1lU8mk~vAH-2QE5om8dstWUwWoNDwmVDlvIJNKzQmahG~VrpFexFHXO0n3fKIXcSgWGOHDExM8w9neCt7AxUjxPDtXXuYNW~bRwcfiL-C9~z4K9rmwiTPZX0lmsToSXTF28l7WAoj~TMT9kZAjQeFRRWU5oW5oxVuonVvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABngJSS8xMyF4t82otZmCDhrKjbm-QLMtOLoumwR28ebDHEd4clF6O7aRa3d3yRH7p\n")
|
||||
sys.stdout.write(sess.recv(1000))
|
||||
|
||||
# listen incoming messages
|
||||
while 1 :
|
||||
chunk = sess.recv(10000)
|
||||
sys.stdout.write(chunk+'\n')
|
||||
if not chunk : break
|
||||
print
|
||||
|
31
apps/sam/Demos/rawTests/samOut.py
Executable file
31
apps/sam/Demos/rawTests/samOut.py
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# sends a message to datagram destinations opened by samForward.py and samIn.py, using specified sending session name
|
||||
# at least samForward.py should be running for results to be seen
|
||||
# usage : ./samOut.py [ sendingSessionName [ message ... ] ]
|
||||
# sendingSessionName : default = datagramSamForward
|
||||
# message : default = "this is nice message"
|
||||
|
||||
import socket
|
||||
import sys
|
||||
import time
|
||||
|
||||
if len(sys.argv)>=2 :
|
||||
name = sys.argv[1]
|
||||
else :
|
||||
name = "datagramSamForward"
|
||||
|
||||
if len(sys.argv)>2 :
|
||||
message = ''.join([s+' ' for s in sys.argv[2:]]).strip()
|
||||
else :
|
||||
message = "This is a nice message"
|
||||
|
||||
|
||||
# client.py
|
||||
port = 7655
|
||||
host = "localhost"
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.bind(("", 0))
|
||||
s.sendto(name+" tYhjbFlFL38WFuO5eCzTvE0UBr4RfaqWMKlekGeMoB-Ouz7nYaWfiS-9j3jMiZT7FH~pwdmoSREOs2ZbXK84sR59P~pPfeCMxnJrk57f3U9uKzXkesjkKWYco3YAGs-G8sw8Fu2FBx0Do57yBdA9~j8Zq6pMjmgPBXCLuXG3vo0Z8zUWCjApJyFY6OXYopHck9Fz9vKy7YhC6zXFHfEuNHVkAooduiLd~aCoGij0TW3lH2rTVU-lx-DUdi6edxQ5-RvDNkXfikvytoCpRkivbNVytjCJLk~7RNU4FpBD20wTZWNJmEG3OY3cjNjawJVFdNjtgczh9K7gZ7ad-NjVjZVhXEj1lU8mk~vAH-2QE5om8dstWUwWoNDwmVDlvIJNKzQmahG~VrpFexFHXO0n3fKIXcSgWGOHDExM8w9neCt7AxUjxPDtXXuYNW~bRwcfiL-C9~z4K9rmwiTPZX0lmsToSXTF28l7WAoj~TMT9kZAjQeFRRWU5oW5oxVuonVvAAAA\n"+message, (host, port))
|
||||
s.sendto(name+" EYUpJFeW9tiubXR0aOjvCJ~ndj3xN0Wn-ljuGdbpOEttPg7nj0VCTOQDJ~FAolzn9FIDdmR3VjM0OFFDT46Q5HN4vShXFE2VNC8e3~GjzxJfaJhijRC2R9oIOzsNlzKtInD2o9lh0PxPioNMCigwmgWuqlQHs4tjWeaYRAtooHxbrtuoCIhIdGfyVV-nAcPiyYbouKq3leETXE~4kBXm-LfWfyPtrv6OuDk3GBVVcthv19GYBmnl2YI8HpJjc-G-TvNkgYishjzIJyEW-Xrpy43R4ZBXlyQqnheGLlbOEY8NLDbyNHLRMMOGbcr~67SVE3Iw3RqQ3Dhrkq2FCaQwcDucfIUCCbOfCZgu0hlnCkS42xsUvegQeiwMxbdI~h9v7vcR3yFFOrHX6WQvIZSbFLKNGArGJcfmOJVLqw1wTC4AgYXjk3csVDPd-QWbMXOuodyBgrg27Ds2BBYTsVXWskoo6ASsMIQZ6jMfL7PkY9dPLCRParIyzb9aPmf~MntNAAAA\n"+message, (host, port))
|
||||
|
Reference in New Issue
Block a user