python Socket之客户端和服务端握手详解

 更新时间:2017年09月18日 10:47:09   作者:水桶前辈  
这篇文章主要为大家详细介绍了python Socket之客户端和服务端握手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据

1. 客户端socketClient.py代码

import socket 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 建立连接: 
s.connect(('127.0.0.1', 9999)) 
# 接收欢迎消息: 
print(s.recv(1024).decode('utf-8')) 
for data in [b'Michael', b'Tracy', b'Sarah']: 
 # 发送数据: 
 s.send(data) 
 print(s.recv(1024).decode('utf-8')) 
s.send(b'exit') 
s.close() 

2. 服务端serverSocket.py代码

import socket 
import threading 
import time 
# from threading import Thread 
 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 监听端口: 
s.bind(('127.0.0.1', 9999)) 
s.listen(5) 
print('Waiting for connection...') 
 
def tcplink(sock, addr): 
 print('Accept new connection from %s:%s...' % addr) 
 sock.send(b'Welcome!') 
 while True: 
  data = sock.recv(1024) 
  time.sleep(1) 
  if not data or data.decode('utf-8') == 'exit': 
   break 
  sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) 
 sock.close() 
 print('Connection from %s:%s closed.' % addr) 
 
while True: 
 # 接受一个新连接: 
 sock, addr = s.accept() 
 # 创建新线程来处理TCP连接: 
 t = threading.Thread(target=tcplink, args=(sock, addr)) 
 t.start() 

3.操作过程

开两个控制台窗口,先运行服务端 python3 serverSocket.py

然后运行客户端 python3 socketClient.py

socket连接截图如下

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

相关文章

  • 使用requests库制作Python爬虫

    使用requests库制作Python爬虫

    Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。
    2018-03-03
  • Python内置函数locals()的具体示例

    Python内置函数locals()的具体示例

    本文主要介绍了Python中的内置函数locals()的具体用法和应用场景,locals()函数用于获取当前局部符号表的字典,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • Python selenium模块的安装和配置教程

    Python selenium模块的安装和配置教程

    这篇文章主要为大家介绍了python中selenium模块的安装和配置环境变量教程、提取数据操作、无头模式,有需要的朋友可以借鉴参考下,希望能够对大家有所帮助
    2022-10-10
  • 详解Django CAS 解决方案

    详解Django CAS 解决方案

    这篇文章主要介绍了详解Django CAS 解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python实现桶排序与快速排序算法结合应用示例

    Python实现桶排序与快速排序算法结合应用示例

    这篇文章主要介绍了Python实现桶排序与快速排序算法结合应用,结合实例形式分析了Python快速排序及桶排序结合应用的相关实现技巧,需要的朋友可以参考下
    2017-11-11
  • Python使用random和tertools模块解一些经典概率问题

    Python使用random和tertools模块解一些经典概率问题

    这篇文章主要介绍了Python使用random和tertools模块解一些经典概率问题,本文讲解了使用random和tertools模块解羊车门问题、扑克牌问题、生日悖论等经典概率问题,需要的朋友可以参考下
    2015-01-01
  • python闭包的实例详解

    python闭包的实例详解

    在本篇文章里小编给大家整理的是一篇关于python闭包的实例详解内容,有兴趣的朋友们可以学习下。
    2021-10-10
  • python实现读取excel写入mysql的小工具详解

    python实现读取excel写入mysql的小工具详解

    EXCEL 和 MySQL 大体上来说都可以算是"数据库",MySQL貌似有EXCEL的接口,但是最近在自学Python,用Python实现了一下,下面这篇文章主要给大家介绍了关于利用python实现读取excel写入mysql的一个小工具,需要的朋友可以参考下。
    2017-11-11
  • python实现简易版计算器

    python实现简易版计算器

    这篇文章主要为大家详细介绍了python实现简易版计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python中的lstrip()方法使用简介

    Python中的lstrip()方法使用简介

    这篇文章主要介绍了Python中的lstrip()方法使用简介,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论