Python网络编程之TCP服务器客户端(二)
传输控制协议(官方术语为TCP/IP协议)是互联网的重要组成部分。TCP的第一个版本是在1974年定义的,它建立在网际层协议(IP)提供的数据包传输技术之上。TCP使得应用程序可以使用连续的数据流进行相互通信,除非出现网络原因导致连接中断等意外情况,否则TCP都能保证数据流完整的传输给接收方,而不会发生丢包、重包或乱序的问题。
传输文档和文件的协议几乎都是使用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客户端源程序代码如下所示:
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()
执行客户端源程序文件,可知:需要我们输入信息,才能显示返回信息;而回过头再看一下服务端的运行结果,显示结果如下所示:
Please waiting for connection... ...connected from: ('127.0.0.1', 52089)
注意:运行结果中的52089在不同情况下的显示是不一样的。接着,我们来验证一下客户端接收返回信息的功能,例如向客户端源程序执行结果中输入:Welcome to visit elijah7i's blog !
运行结果如下所示:
> Welcome to visit elijah7i's blog ! [You send:] Welcome to visit elijah7i's blog ! >
转载于:https://www.cnblogs.com/mix88/p/6185048.html
Python网络编程之TCP服务器客户端(二)相关推荐
- Python网络编程之web服务器
1.HTTP协议 HTTP协议(HyperText Transfer Protocol,超文本传输协议)使用于从www服务器传输超文本到本地浏览器的传送协议.它可以使浏览器更高效,使网络传输减少.它不 ...
- Python网络编程之TCP通信实例和socketserver框架使用例子
http://www.jb51.net/article/49359.htm 转载于:https://blog.51cto.com/duallay/1681062
- Python网络编程之二:网络编程基础
Python网络编程之二:网络编程基础 一.基础概念 1.两个地址 1.1.mac地址 mac地址:直译为媒体存取控制位址,也称为局域网地址.MAC位址.以太网地址或物理地址,它是一个用来确认网络设备 ...
- Python中的网络编程之TCP
Python中的网络编程之TCP 文章目录 Python中的网络编程之TCP 1.TCP介绍 2.TCP特点 3.TCP与UDP的不同点 4.tcp通信模型 5.tcp客户端 6.tcp服务器 7.T ...
- 网络编程之TCP客户端程序开发
网络编程之TCP客户端程序开发 1. 开发 TCP 客户端程序开发步骤 2. socket 类的介绍 3. TCP 客户端程序开发示例代码 4. 小结 1. 开发 TCP 客户端程序开发步骤 创建客户 ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...
- Centos网络编程之tcp十一种状态及问题处理办法
尊重原创版权: https://www.noveljp.com/hot/43730.html 更多内容参考: https://www.noveljp.com/ Linux网络编程之tcp十一种状态及问 ...
- Python网络编程之day01-网络编程基础
Python网络编程之day01-网络编程基础 文章目录 Python网络编程之day01-网络编程基础 一.网络通信概述 二.IP地址 三.ping,ifconfig,ipconfig 四.端口 代 ...
- java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...
最新文章
- unity点击按钮换按钮图标
- studio 3t 在ubuntu中使用_在ubuntu中使用ufw配置防火墙
- Android 使用PDF.js浏览pdf
- GitHub+Jenkins持续集成简介
- (王道408考研数据结构)第五章树-第一节:树的定义、基本用语和常考性质
- java商品列表展示_前台开发-----开发商品的列表显示
- Java基础总结--1
- java源码-AtomicInteger
- win10如何微信多开(无需工具)
- UI设计中标签栏图标设计规范
- 地理加权回归的学习(地理加权回归用来量化空间异质性)
- UML与Rational Rose
- python调用高德接口获取国内行政区经纬度数据
- error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054解决方法
- RGB颜色过度,数值转颜色
- 芯片解密MC9S08DZ16 飞思卡尔系列芯片解密
- java web工程,传递字符串参数小记
- 自制COREXY结构的3D打印机
- 开源:全球软件产业四大发展趋势之一(转)
- 变频空调和定频空调的区别
热门文章
- jsonobject修改key的值_JSON字符串操作移除空串更改key/value的介绍
- java 英文字符串排序_英文字符串排序算法
- 清华计算机自主招生试题,2017年清华大学自主招生笔试题
- NYOJ 2 括号配对问题
- go返回多个值和python返回多个值对比
- 160 - 7 aLoNg3x.2
- python方法items_Python字典items()方法与示例
- Python---二分法查找
- 树莓派3b安装ubuntu mate(在有显示器前提下看)
- 华为mate50鸿蒙,华为Mate50Pro首次曝光,5000mAh+鸿蒙OS+120Hz,太强