python3.5实现socket通讯示例(TCP)


Posted in Python onFebruary 07, 2017

TCP连接:

tcp是面向连接的一个协议,意味着,客户端和服务器开发发送数据之前,需要先握手创建一个TCP连接。TCP连接的一端与客户端套接字相互联系,另一端与服务器套接字相联系。当创建该TCP连接的时,我们需要讲客户端与服务器的套接字地址(IP地址和端口号)关联起来。使用创建的TCP连接,当一侧要向另一侧发送数据的时候,它只需要经过其套接字将数据丢给TCP连接,不需要再次附上目的地址。

使用TCP连接的客户-服务器程序:

python3.5实现socket通讯示例(TCP)

TCPServer.py

import socket

import socketserver

import time

import threading

 

serverPort = 50007

serverSocket =socket.socket(socket.AF_INET,socket.SOCK_STREAM)

serverSocket.bind (('',serverPort))

serverSocket.listen(1)

print('The server is ready to receive')

while 1:

  connectionSocket,addr = serverSocket.accept()

  sentence = connectionSocket.recv(1024)

  capitalizedSentence = sentence.upper()

  connectionSocket.send(capitalizedSentence)

  connectionSocket.close()

TCPClient.py

from socket import *

serverName = '127.0.0.1'

serverPort = 50007

clientSocket =socket(AF_INET,SOCK_STREAM)

clientSocket.connect((serverName,serverPort))

sentence = input('Input lowercase sentence:')

clientSocket.send(sentence.encode())

modifiedSentence = clientSocket.recv(1024)

print('From Server:',modifiedSentence.decode())

clientSocket.close()

注意:

1、客户端能够使用一个TCP套接字向服务器发送数据之前,必须在客户端与服务器之间创建一个TCP连接;

2、clientSocket.connect((serverName,serverPort)):执行三次握手,创建TCP连接;

3、clientSocket.close():关闭客户端和服务器之间的TCP连接;

4、connectionSocket.close():向客户端发送完毕之后关闭该连接套接字

TCP连接需要两个套接字,UDP只要一个,

TCP服务器支持n个并行连接,每条连接来自不同客户端,TCP连接需要n+1个套接字即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简化Python的Django框架代码的一些示例
Apr 20 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
python批量制作雷达图的实现方法
Jul 26 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
Python内置random模块生成随机数的方法
May 31 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
django rest framework使用django-filter用法
Jul 15 Python
Python生成九宫格图片的示例代码
Apr 14 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
Python中字典的setdefault()方法教程
Feb 07 #Python
Python连接数据库学习之DB-API详解
Feb 07 #Python
使用Python中的tkinter模块作图的方法
Feb 07 #Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 #Python
详解python中字典的循环遍历的两种方式
Feb 07 #Python
python3使用PyMysql连接mysql数据库实例
Feb 07 #Python
Python处理文本文件中控制字符的方法
Feb 07 #Python
You might like
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
javascript string字符串优化问题
2011/07/31 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python代码实现ID3决策树算法
2017/12/20 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
护理不良事件检讨书
2014/02/06 职场文书
师德师风自查总结
2014/10/14 职场文书
房屋租房协议书范本
2014/12/04 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
安全教育的主题班会
2015/08/13 职场文书