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实现在Linux系统下更改当前进程运行用户
Feb 04 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python如何创建TCP服务端和客户端
Aug 26 Python
python 获取url中的参数列表实例
Dec 18 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
python安装sklearn模块的方法详解
Nov 28 Python
Django数据统计功能count()的使用
Nov 30 Python
python 实现socket服务端并发的四种方式
Dec 14 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实现微信对账单处理
2018/10/01 PHP
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
jquery foreach使用示例
2013/09/12 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Python之Class&Object用法详解
2019/12/25 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
Ajax的工作原理
2015/12/04 面试题
Python如何定义一个函数
2015/09/01 面试题
小学敬老月活动方案
2014/02/11 职场文书
高中生操行评语
2014/04/25 职场文书
模范班主任事迹材料
2014/12/17 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
物业保安辞职信
2015/05/12 职场文书
2016教师国培研修感言
2015/12/08 职场文书
简历自我评价范文
2019/04/24 职场文书