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遍历目录的4种方法实例介绍
Apr 13 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
python使用百度文字识别功能方法详解
Jul 23 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 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创建多级目录代码
2008/06/05 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Python with语句用法原理详解
2020/07/03 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
Python连接mysql方法及常用参数
2020/09/01 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
秋季红领巾广播稿
2014/01/27 职场文书
班级活动策划书
2014/02/06 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书