#!/usr/bin/env python
# coding = utf-8
import socket, sys
port = 70
host = sys.argv[1]
filename = sys.argv[2]
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, port))
except socket.gaierror, e:
print 'Error connecting to server: %s' % e
sys.exit(1)
s.sendall(filename + "\r\n")
while 1:
buf = s.recv(2048)
if not len(buf):
break
sys.stdout.write(buf)
输出:
[root@localhost socket]# python ./goherclient1.py quux.org /
iWelcome to gopher at quux.org!fake(NULL)0
ifake(NULL)0
iThis server has a lot of information of historic interest,fake(NULL)0
ifunny, or just plain entertaining -- all presented in Gopher.fake(NULL)0
iThere are many mirrors here of rare or valuable files with thefake(NULL)0
iaim to preserve them in case their host disappears. PLEASE READfake(NULL)0
i"About This Server" FOR IMPORTANT NOTES AND LEGAL INFORMATION.fake(NULL)0
ifake(NULL)0
0About This Server/About This Server.txtgopher.quux.org70+
1Archives/Archivesgopher.quux.org70+
1Books/Booksgopher.quux.org70+
1Communication/Communicationgopher.quux.org70+
iThis directory contains the entire text of the bookfake(NULL)0
i"We the Media: Grassroots Journalism by the People, for the People"fake(NULL)0
iby Dan Gillmor in various formats.fake(NULL)0
ifake(NULL)0
iFeel free to download and enjoy.fake(NULL)0
1Computers/Computersgopher.quux.org70+
1Current Issues and Events (Updated Apr. 23, 2002)/Currentgopher.quux.org70+
1Development Projects/develgopher.quux.org70+
0Gopher's 10th Anniversary/3.0.0.txtgopher.quux.org70
1Government, Politics, Law, and Conflict/Governmentgopher.quux.org70+
0How To Help/How To Help.txtgopher.quux.org70+
1Humor and Fun/Humor and Fungopher.quux.org70+
1Index to Quux.Org/Archives/indexgopher.quux.org70
1Internet/Internetgopher.quux.org70+
1Other Gopher Servers/Software/Gopher/serversgopher.quux.org70
1People/Peoplegopher.quux.org70+
1Reference/Referencegopher.quux.org70+
1Software and Downloads/Softwaregopher.quux.org70+
1The Gopher Project/Software/Gophergopher.quux.org70
0What's New/whatsnew.txtgopher.quux.org70+