python网络编程之tcp服务器和客户端

来源:互联网 发布:化妆品网络供货平台 编辑:程序博客网 时间:2024/05/23 16:27

tcp协议是双向通信,需要先建立连接,然后才能互相通信。其中涉及到通信节点(socket),端口等一些网络知识。如果不太了解,可以查看网络方面的资料。

tcp服务器

可以形象的理解为:银行早上9点开门营业,工作人员到各自的窗口上就位,等待顾客办理业务。

  1. 开启套接字(银行开门)
  2. 绑定服务端口(工作人员到各自的窗口)
  3. 开始监听(工作人员就位)
  4. 等待客户端连接(等待顾客)
  5. 和客户端对话(办理业务)
1#!/usr/bin/env python
2#coding=utf8
3 
4from socket import *
5 
6host = ''
7port = 12345
8bufsiz = 1024
9 
10#开启套接字
11tcpSerSock = socket(AF_INET, SOCK_STREAM)
12#绑定服务端口
13tcpSerSock.bind((host, port))
14#开始监听
15tcpSerSock.listen(5)
16 
17while True:
18    #等待客户端连接
19    print 'waiting for connection...'
20    tcpCliSock, addr = tcpSerSock.accept()
21    print '...connected from:', addr
22 
23    while True:
24        #接收客户端信息
25        data = tcpCliSock.recv(bufsiz)
26        if not data:
27            break
28        #给客户端发送信息
29        tcpCliSock.send('[%s] %s' %("You send:", data))
30 
31    tcpCliSock.close()
32 
33tcpSerSock.close()

tcp客户端

可以形象的理解为:顾客打算办理业务,到指定的窗口,和工作人员沟通办理业务。

  1. 开启套接字(打算办理业务)
  2. 连接服务器(到达指定窗口)
  3. 开始对话(办理业务)
1#!/usr/bin/env python
2#coding=utf8
3 
4from socket import *
5 
6host = 'localhost'
7port = 12345
8bufsiz = 1024
9 
10#开启套接字
11tcpCliSock = socket(AF_INET, SOCK_STREAM)
12#连接到服务器
13tcpCliSock.connect((host, port))
14 
15while True:
16    #等待输入
17    data = raw_input('> ')
18    if not data:
19        break
20    #发送信息
21    tcpCliSock.send(data)
22    #接受返回信息
23    response = tcpCliSock.recv(bufsiz)
24    if not response:
25        break
26    print response
27 
28tcpCliSock.close()

运行结果截图:

python网络编程tcp服务端

python网络编程tcp服务端

python网络编程tcp客户端

python网络编程tcp客户端


0 0
原创粉丝点击