sending images via socket?
rainlet
orrego at mail2000.com.tw
Tue Sep 25 00:18:56 EDT 2001
I wrote a simple server in Python. It works well when sending HTML
file. But the browser will display image in a text form ( many strange
ASCII code ). I read the image files in the way :
FD = open ( FILE, "rb" )
and I send this also :
NEWSOCK.send ( "Content-Type: image/" + FILETYPE )
Can anyone tell me what's wrong?
Thank you very much!
The source followed (if you'd like to view ^_^):
# CODE START
import socket
import string
import time
MYSOCK = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
MYSOCK.bind ( ( "163.22.33.131", 3333 ) )
print ( "Rainlet Server Version 1.0 Start!" )
MYSOCK.listen ( 5 )
while 1 :
NEWSOCK, ADDR = MYSOCK.accept ( )
print ADDR
MSG = NEWSOCK.recv ( 6000 )
MSGLIST = MSG.split ( "\n" )
FILELIST = MSGLIST [ 0 ].split ( )
FILE = FILELIST [ 1 ] [ 1 : ]
FILETYPELIST = FILE.split ( "." )
FILETYPE = FILETYPELIST [ 1 ]
print MSG, FILE, FILETYPE
if FILETYPE == "html" :
FD = open ( FILE, "r" )
FCONTENT = FD.read ( )
elif FILETYPE == "png" or FILETYPE == "jpeg" or FILETYPE == "gif"
:
FD = open ( FILE, "rb" )
FCONTENT = FD.read ( )
print ( "HTTP/1.1 200 OK" )
print ( "Date: " + time.strftime("%a, %d %b %Y %H:%M:%S GMT+8",
time.gmtime()))
if FILETYPE == "html" :
print ( "Content-Type: text/" + FILETYPE )
elif FILETYPE == "png" or FILETYPE == "jpeg" or FILETYPE == "gif"
:
print ( "Content-Type: image/" + FILETYPE )
print ( "Content-Length: " + str ( len ( FCONTENT ) ) )
print ( "\n" )
NEWSOCK.send ( "HTTP/1.1 200 OK" )
NEWSOCK.send ( "Date: " + time.strftime( "%a, %d %b %Y %H:%M:%S
GMT+8", time.gmtime( ) ) )
if FILETYPE == "html" :
NEWSOCK.send ( "Content-Type: text/" + FILETYPE )
elif FILETYPE == "png" or FILETYPE == "jpeg" or FILETYPE == "gif"
:
NEWSOCK.send ( "Content-Type: image/" + FILETYPE )
NEWSOCK.send ( "Content-Length: " + str ( len ( FCONTENT ) ) )
NEWSOCK.send ( "\n" )
NEWSOCK.send ( FCONTENT )
NEWSOCK.send ( "\n" )
NEWSOCK.close ( )
MYSOCK.close ( )
More information about the Python-list
mailing list