python套接字编程:
服务端:
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST,PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while 1:
print 'waiting for connection ..'
tcpCliSock, addr = tcpSerSock.accept()
print '.. connected from :', addr
while 1:
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
tcpCliSock.send('[%s] %s' %(ctime(),data) )
#tcpCliSock.close()
tcpSerSock.close()
服务端设定了一个ip,‘’认为是本机,端口号,一个有链接的socket sock_stream,变量名为tcpSerSock
tcpSerSock与对应ip+端口号绑定;tcpSerSock等待链接,支持最大的链接数为5个。
然后就一直接受链接,一旦accept成功,就尝试去接收数据,,如果接受成功,就给链接的客户端返回一个数据(时间+从客户端接收到的数据)
客户端:from socket import *
HOST = 'localhost'
PORT=21567
BUFSIZ = 1024
ADDR = (HOST,PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while 1:
data = raw_input('>')
if not data:
beak
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
print data
tcpCliSock.close()
创建一个面向链接的socket,链接指定ip和端口的socket服务端。
接受用户的输入并且发送到服务端
接受服务端的数据并且打印出来。
参考:
https://wizardforcel.gitbooks.io/core-python-2e/content/19.html