服务器端:
我们使用 socket 模块的 socket 函数来创建一个 socket 对象。socket 对象可以通过调用其他函数来设置一个 socket 服务。
现在我们可以通过调用 bind(hostname, port) 函数来指定服务的 port(端口)。
接着,我们调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。
完整代码如下:
#!/usr/bin/python
# coding=utf-8
import sys
import socket
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
try:
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error,msg:
print "Creating Socket Failure. Error Code:" + str(msg[0]) + "Message:" + msg[1]
sys.exit()
print "Socket Created!"
server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #设置地址复用
try:
server.bind(server_addr)
except socket.error,msg:
print "Binding Failure. Error Code:" + str(msg[0]) + " Message:" + msg[1]
sys.exit()
print "Socket Bind!"
server.listen(5)
print "Socket listening "
while True:
client,client_addr = server.accept()
print "Connected by", client_addr
while True:
sendMsg = client.recv(BUF_SIZE)
client.sendall(sendMsg)
server.close()
客户端:
接下来我们写一个简单的客户端实例连接到以上创建的服务。端口号为 12345。
socket.connect(hosname, port ) 方法打开一个 TCP 连接到主机为 hostname 端口为 port 的服务商。连接后我们就可以从服务端后期数据,记住,操作完成后需要关闭连接。
完整代码如下:
import sys
import socket
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
try:
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except socket.error,msg:
print "Creating socket Failure. Error Code :"+str(msg[0]) + "Message:" + msg[1]
sys.exit()
try:
client.connect(server_addr)
except socket.error,msg:
print "Connect server Failure. Error Code:" + str(msg[0])
sys.exit()
while True:
data = raw_input("Please input send your message >")
if not data:
print "input can't empty,Please input again.."
continue
client.sendall(data)
data = client.recv(BUF_SIZE)
print data
client.close()
Python Internet 模块
以下列出了 Python 网络编程的一些重要模块:

详解请看以下地址:
http://www.runoob.com/python/python-socket.html