您的位置:首页 > 理论基础 > 计算机网络

python网络socket编程

2016-04-27 20:17 513 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: