Python使用socket模块实现简单tcp通信


Posted in Python onAugust 18, 2020

正文开始:

服务器端代码:

# 再来简单的测试,这个是服务器端
import socket
import sys

BUF_SIZE = 1024
ip_port = (r"127.0.0.1", 11552)

my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 先拿到套接字,指定个ipv4以及流式数据包
my_socket.bind(ip_port) # 绑定
my_socket.listen(2)

# 循环等待客户端连接
while True:
  print("waiting for client..")
  conn, address = my_socket.accept()
  print("connect from .." + str(address))

  # 循环接受
  while True:
    ret = conn.recv(BUF_SIZE)
    print("server receive data:" + str(ret))

    if "END" in str(ret):
      print("clent's gonna be offline.")
      conn.send(bytes("BYE", encoding="utf-8"))
      my_socket.close()
      sys.exit()
    else:
      conn.send(bytes("server copy", encoding="utf-8"))

客户端代码:

# 这个是客户端
import socket

BUF_SIZE = 1024
ip_port = (r"127.0.0.1", 11552)

my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_socket.connect(ip_port)

while True:
  data = input(">>>")

  my_socket.send(bytes(data, encoding="utf-8"))
  recieve_data = my_socket.recv(BUF_SIZE)
  print("client receive data = " + str(recieve_data))
  if "BYE" in str(recieve_data):
    print("server disconnect!")
    break

运行方法:

一个利用windows的cmd,直接输入命令:python server.py运行服务器

一个利用pycharm直接运行client.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中类的一些方法分析
Sep 25 Python
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
Python操作MySQL模拟银行转账
Mar 12 Python
Python pymongo模块用法示例
Mar 31 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
Python实现查找数据库最接近的数据
Jun 08 Python
python小白学习包管理器pip安装
Jun 09 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
python源码剖析之PyObject详解
May 18 Python
python 浮点数四舍五入需要注意的地方
Aug 18 #Python
Python filter过滤器原理及实例应用
Aug 18 #Python
Python lambda表达式原理及用法解析
Aug 18 #Python
python 使用建议与技巧分享(四)
Aug 18 #Python
Python正则re模块使用步骤及原理解析
Aug 18 #Python
python使用建议技巧分享(三)
Aug 18 #Python
python3跳出一个循环的实例操作
Aug 18 #Python
You might like
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP 采集程序 常用函数
2008/12/18 PHP
php中文验证码实现方法
2015/06/18 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
在centos7中分布式部署pyspider
2017/05/03 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
使用tensorflow实现线性回归
2018/09/08 Python
python常用排序算法的实现代码
2019/11/08 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
学校卫生检查制度
2014/02/03 职场文书
秋游活动策划方案
2014/02/16 职场文书
企业员工薪酬方案
2014/06/04 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
python异常中else的实例用法
2021/06/15 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL