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实现自动更换ip的方法
May 05 Python
python实现百度语音识别api
Apr 10 Python
Python 移动光标位置的方法
Jan 20 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
python烟花效果的代码实例
Feb 25 Python
通俗讲解python 装饰器
Sep 07 Python
在Python中字典按值排序的实现方法
Nov 12 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
python实现求纯色彩图像的边框
Apr 08 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作的文本留言本的例子(六)
2006/10/09 PHP
php基础知识:类与对象(5) static
2006/12/13 PHP
谈谈新手如何学习PHP
2006/12/23 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
教师网络培训感言
2014/03/09 职场文书
2014年保洁员工作总结
2014/11/19 职场文书