最近在读Magnus Lie Hetland的Python基础教程,做了个Socket小练习,先记录一下。
Socket包括服务器套接字和客户机套接字。
Socket Server代码如下:
#Socket Server
import socket
s = socket.socket()
host = socket.gethostname()
port = 5700
s.bind((host, port))
s.listen(3)
try:
while True:
c, addr = s.accept()
print "Got connetion from", addr
sndmsg = "Thank you for connection"
c.send(sndmsg)
recmsg = c.recv(1024)
while not "quit" in recmsg:
print "Received >>", recmsg
sndmsg = raw_input("Please input your message: ")
if sndmsg and (not "quit" in sndmsg):
print "Send Msg:", sndmsg
c.send(sndmsg)
recmsg = c.recv(1024)
else:
break
c.close()
cmd = raw_input("Do you want to finish the socket? y/n\n")
if cmd != 'n': break
finally:
s.close()
Socket Client代码如下:
# Socket client
import socket
s = socket.socket()
host = "sinjon-PC"
port = 5700
s.connect((host, port))
recmsg = s.recv(1024)
while True:
print "Received >>", recmsg
sndmsg = raw_input("Enter your message: ")
if sndmsg and (not "quit" in sndmsg):
s.send(sndmsg)
print "Send Msg:", sndmsg
recmsg = s.recv(1024)
else:
cmd = raw_input("Do you want to finish this chart? y/n\n")
if cmd != 'n':
s.send("quit")
break