Talk is cheap, show me the code!!!
服务端socket_server_demo01.py
代码如下:
# coding: utf-8
"""
socket 服务器端
基于套接字socket的网络通信
"""
import socket # 导入socket模块
# from time import ctime
import time
# HOST = socket.gethostname() # 主机名, '127.0.0.1' or 'localhost'
HOST = '127.0.0.1' # 主机名, '127.0.0.1' or 'localhost'
PORT = 21929 # 设置端口号
BUFSIZ = 1024
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象
s.bind(ADDR) # 将地址(主机名/端口号对)绑定到套接字上
s.listen(5) # 设置并启动TCP监听器
while True:
print 'waiting for connection...'
c, addr = s.accept() # 被动接受TCP客户端连接, 一直等待直到连接到达(阻塞)
print '...connected from: ', ADDR # 打印连接地址
while True:
data = c.recv(BUFSIZ) # 接收TCP消息
if not data:
break
# c.send('[%s] %s' % (ctime(), data))
# c.send('[{}] {}'.format(str(ctime()), data)) # 发送TCP消息
c.send('[{}] {}'.format(time.strftime("%Y-%m-%d %H:%M:%S %A", \
time.localtime()), data)) # 发送TCP消息
c.close() # 关闭套接字(关闭连接)
c.close() # 关闭套接字(关闭连接)
客户端socket_client_demo01.py
代码如下:
# coding: utf-8
"""
socket 客户端
基于套接字socket的网络通信
"""
import socket # 导入socket模块
# HOST = socket.gethostname() # 主机名, '127.0.0.1' or 'localhost'
HOST = '127.0.0.1' # 主机名, '127.0.0.1' or 'localhost'
PORT = 21929 # 设置端口
BUFSIZ = 1024
ADDR = (HOST, PORT) # 地址, `主机名+端口` 对
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象
s.connect(ADDR) # 主动发起TCP服务器连接
while True:
data = raw_input('> ') # 待输入就绪状态
if not data:
break
s.send(data) # 发送输入的数据
data = s.recv(BUFSIZ) # 接收TCP消息
if not data:
break # 若无数据输入则跳出循环
print data
s.close() # 关闭套接字(关闭连接)
运行结果: