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中List.count()方法的使用教程
May 20 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
python+pyqt5实现24点小游戏
Jan 24 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
Python如何重新加载模块
Jul 29 Python
python 中关于pycharm选择运行环境的问题
Oct 31 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
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
基于jquery的tab切换 js原理
2010/04/01 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
Python并行分布式框架Celery详解
2018/10/15 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
详解python中list的使用
2019/03/15 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
python 如何上传包到pypi
2020/12/24 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
党员查摆问题及整改措施
2014/10/10 职场文书
董存瑞观后感
2015/06/11 职场文书
小学运动会前导词
2015/07/20 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
用JS写一个发布订阅模式
2021/11/07 Javascript
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python