socket 网络编程的服务端:
1) 创建 socket 套接字.
2) 和 socket 绑定主机地址和端口
3) socket 主动监听端口, 看又没有来连接.
4) 当执行到 accept() 时, 被动地等待连接来到. 阻塞. 当连接来到时, 调用, 返回与客户端通信的 socket, 和客户的 addr : ip + 新的通信端口.
- 5) resv() ,, send()
- from socket import *
- from time import ctime
- HOST='127.0.0.1'
- PORT = 1111
- BUFSIZE= 1024
- ADDR = (HOST,PORT)
- tcpSerSock = socket(AF_INET, SOCK_STREAM)
- tcpSerSock.bind(ADDR)
- tcpSerSock.listen(5)
- while True:
- print 'waiting for connection...'
- tcpCliSock, addr = tcpSerSock.accept()
- print '...connection from:', addr
- while True:
- data = tcpCliSock.recv(BUFSIZE)
- print data
- if not data:
- break
- tcpCliSock.send('[%s] %s' %(ctime(), data))
- if data == None:
- tcpCliSock.close()
- tcpSerSock.close()
socket 客户端编程:
1) 创建客户端的 socket
2) 调用 connet( addr ) 连接 服务器 addr
3) 数据的发送和接受.
- from socket import *
- from time import ctime
- HOST='127.0.0.1'
- PORT = 1111
- BUFSIZE= 1024
- ADDR = (HOST,PORT)
- tcpSerSock = socket(AF_INET, SOCK_STREAM)
- tcpSerSock.bind(ADDR)
- tcpSerSock.listen(1)
- while True:
- print 'waiting for connection...'
- tcpCliSock, addr = tcpSerSock.accept()
- print '...connection from:', addr
- while True:
- data = tcpCliSock.recv(BUFSIZE)
- print data
- if not data:
- break
- tcpCliSock.send('[%s] %s' %(ctime(), data))
- if data == None:
- tcpCliSock.close()
- tcpSerSock.close()
来源: http://www.bubuko.com/infodetail-2900817.html