Python网络编程之TCP服务器客户端(二)

  传输控制协议(官方术语为TCP/IP协议)是互联网的重要组成部分。TCP的第一个版本是在1974年定义的,它创建在网际层协议(IP)提供的数据包传输技术之上。TCP使得应用程序可使用连续的数据流进行相互通讯,除非出现网络缘由致使链接中断等意外状况,不然TCP都能保证数据流完整的传输给接收方,而不会发生丢包、重包或乱序的问题。python

  传输文档和文件的协议几乎都是使用TCP的,这包括经过浏览器浏览网页、文件传输以及用于电子邮件传输的全部主要机制。TCP协议是双向通讯的,须要先创建链接而后才能互相通讯。其中涉及到一些通讯、网络相关方面的知识,这里不进行详细解释,若是不大了解,请自行去查看有关资料。浏览器

  TCP服务器的创建能够概括以下:(1).开启套接字(socket);(2).绑定服务端口;(3).开始监听;(4).等待客户端链接;(5).和客户端对话。TCP服务器源程序代码以下所示:服务器

 1 #!/usr/bin/env python
 2 # coding=utf8
 3 
 4 from socket import *
 5 
 6 host = ''
 7 port = 12345
 8 bufsiz = 1024
 9 
10 tcpSerSock = socket(AF_INET, SOCK_STREAM)   # 开启套接字
11 tcpSerSock.bind((host, port))               # 绑定服务端口
12 tcpSerSock.listen(5)                        # 开始监听
13 
14 while True:
15     print 'Please waiting for connection...'      # 等待客户端链接
16     tcpCliSock, addr = tcpSerSock.accept()
17     print '...connected from:', addr
18 
19     while True:
20         data = tcpCliSock.recv(bufsiz)      # 接收客户端信息
21         if not data:
22             break
23         tcpCliSock.send('[%s] %s' % ("You send:", data))    # 给客户端发送信息
24     tcpCliSock.close()
25     
26 tcpSerSock.close()

运行结果以下所示:网络

Please waiting for connection...

  TCP客户端的建立可总结以下:(1).开启套接字(socket);(2).链接服务器;(3).开始对话。TCP客户端源程序代码以下所示:socket

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

执行客户端源程序文件,可知:须要咱们输入信息,才能显示返回信息;而回过头再看一下服务端的运行结果,显示结果以下所示:tcp

Please waiting for connection...
...connected from: ('127.0.0.1', 52089)

注意:运行结果中的52089在不一样状况下的显示是不同的。接着,咱们来验证一下客户端接收返回信息的功能,例如向客户端源程序执行结果中输入:Welcome to visit elijah7i's blog ! spa

运行结果以下所示:code

> Welcome to visit elijah7i's blog !
[You send:] Welcome to visit elijah7i's blog !
> 
相关文章
相关标签/搜索