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网络编程学习笔记(一)
Jun 09 Python
Python中itertools模块用法详解
Sep 25 Python
python中import学习备忘笔记
Jan 24 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python并发:多线程与多进程的详解
Jan 24 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python中数字是否为可变类型
Jul 08 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 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之第十天
2006/10/09 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
flash用php连接数据库的代码
2011/04/21 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python中的urllib模块使用详解
2015/07/07 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
pytorch中的inference使用实例
2020/02/20 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
广告设计应届生求职信
2014/03/01 职场文书
工作决心书
2014/03/11 职场文书
班级出游活动计划书
2014/08/15 职场文书
员工自我评价范文
2015/03/11 职场文书
商场营业员岗位职责
2015/04/14 职场文书
奖励通知
2015/04/22 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
《迟到》教学反思
2016/02/24 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL