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连接截图如下

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

相关文章

  • Python数据结构集合set教程示例详解

    Python数据结构集合set教程示例详解

    这篇文章主要为大家介绍了Python数据结构集合set教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Pycharm虚拟环境pip时报错:no suchoption:--bulid-dir的解决办法

    Pycharm虚拟环境pip时报错:no suchoption:--bulid-dir的解决办法

    最近在工作中遇到了些问题,想着大家应该也会遇到过,所以给大家总结下,这篇文章主要给大家介绍了关于Pycharm虚拟环境pip时报错:no suchoption: --bulid-dir的解决办法,需要的朋友可以参考下
    2022-07-07
  • python多线程threading.Lock锁用法实例

    python多线程threading.Lock锁用法实例

    这篇文章主要介绍了python多线程threading.Lock锁用法,以实例形式对python锁的用法进行了较为详细的分析,需要的朋友可以参考下
    2014-11-11
  • python GUI计算器的实现

    python GUI计算器的实现

    这篇文章主要介绍了python gui计算器的实现,帮助大家更好的理解和学习python gui编程,感兴趣的朋友可以了解下
    2020-10-10
  • python assert的用处示例详解

    python assert的用处示例详解

    python assert 句语格式及用法很简单。通常程序在运行完之后抛出异常,使用assert可以在出现有异常的代码处直接终止运行。这篇文章通过实例代码介绍了python assert的用处 ,需要的朋友可以参考下
    2019-04-04
  • 利用Python封装MySQLHelper类实现数据库的增删改查功能

    利用Python封装MySQLHelper类实现数据库的增删改查功能

    Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库,本文主要介绍了如何封装一个MySQLHelper类,实现对数据库的增删改查功能,感兴趣的可以了解一下
    2023-06-06
  • Python加密word文档详解

    Python加密word文档详解

    这篇文章主要介绍了Python实现对word文档添加密码去除密码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例

    python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例

    这篇文章主要介绍了python爬虫开发之Beautiful Soup模块详细使用方法与实例,需要的朋友可以参考下
    2020-03-03
  • 详解python模块pychartdir安装及导入问题

    详解python模块pychartdir安装及导入问题

    这篇文章主要介绍了python模块pychartdir导入问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Python hasattr函数的具体使用

    Python hasattr函数的具体使用

    本文主要介绍了Python hasattr函数的具体使用,包括基本用法、返回值、应用场景,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02

最新评论