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之永远强大的函数
Sep 14 Python
Python实现设置windows桌面壁纸代码分享
Mar 28 Python
基python实现多线程网页爬虫
Sep 06 Python
Python解析树及树的遍历
Feb 03 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
详解python的四种内置数据结构
Mar 19 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
Django时区详解
Jul 24 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
分享提高 Python 代码的可读性的技巧
Mar 03 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
德生PL660的电路分析和打磨
2021/03/02 无线电
PHP中的正规表达式(二)
2006/10/09 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
详解vue-cli3使用
2018/08/14 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
tensorflow更改变量的值实例
2018/07/30 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
shell的种类有哪些
2015/04/15 面试题
学术会议主持词
2014/03/17 职场文书
药品业务员岗位职责
2014/04/17 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
合作协议书模板2014
2014/09/26 职场文书
师德师风个人整改措施
2014/10/27 职场文书
员工离职感谢信
2015/01/22 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
物业公司管理制度
2015/08/05 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js