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 enumerate遍历数组示例应用
Sep 06 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python进阶篇之字典操作总结
Nov 16 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
python aiohttp的使用详解
Jun 20 Python
python实现微信自动回复机器人功能
Jul 11 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
python实现字符串和数字拼接
Mar 02 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
Python网络编程之ZeroMQ知识总结
Apr 25 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反射应用示例
2014/02/25 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
php输出形式实例整理
2020/05/05 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
javascript自执行函数
2017/02/10 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
vue自动化表单实例分析
2018/05/06 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
Vue-Router的使用方法
2018/09/05 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
python之yield表达式学习
2014/09/02 Python
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
python对视频画框标记后保存的方法
2018/12/07 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
怎样写演讲稿
2014/01/04 职场文书
降消项目实施方案
2014/03/30 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
实践论读书笔记
2015/06/29 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python