小工具      在线工具  汉语词典  css  js  c++  java

python Socket客户端与服务器握手

Python 额外说明

收录于:93天前

简单学习使用socket在客户端和服务器之间建立连接并发送数据

1. 客户端套接字客户端.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连接截图如下


. . .

相关推荐

额外说明

PostgreSQL直接使用SQL或控制台查询表名和表结构;获取数据库中所有视图的视图名称;如何检查一个表属于哪个数据库;并根据字段名查询表。

PostgreSQL直接sql或控制台查询表名称及表结构;获取数据库中所有视图view名 1、查询表结构 `psql`方式下查询表结构 `sql`方式查看表结构 2、查询表名称 `psql`方式查询表名称 `sql`方式查看表名称 `sql` 方式视图名

额外说明

【JAVA-Day34】使用Java函数处理命令行参数

使用Java函数处理命令行参数 使用Java函数处理命令行参数 引言 函数参数 了解Java函数参数的基本概念 函数参数是什么? 不同类型的函数参数 参数的作用和在函数中的角色 什么是命令行传参 探索命令行传参的概念和定义 什么是命令行传参? 命令行参数

额外说明

企业级实战——品优购电商系统开发- 106 . 107 . 108 .目标 电商概念SPU和SKU 表结构分析

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

Unity零基础到入门 ☀️| Unity下载安装---使用UnityHub下载各个版本的Unity(收藏)

前言:如果刚开始准备使用Unity做开发,在UnityHub上下载你想要的Unity版本会事半功倍,省掉很多麻烦哦,看这篇文章可以方便快捷安装使用Unity进行开发 注意:在使用Unity之前需要进行环境配置,如果只是进行Windows开发,那么配置JD

额外说明

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)

APPLIES TO Autonomous Data Warehouse - Dedicated Infrastructure - Version N/A and later Oracle Database - Enterprise Edition -

额外说明

力扣Leetcode:10. 正则表达式匹配(Python)

题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 输入:s = “

额外说明

【C++14保姆级教程】lambda 初始化捕获 new/delete 消除

文章目录 前言 一、Lambda表达式捕获列表 1.1 Lambda表达式捕获列表是什么? 1.2 Lambda表达式捕获列表使用 1.3 值捕获的示例 1.4 引用捕获的示例 1.5 初始化捕获与可变性(mutable) 1.6 示例代码 二、智能指针

额外说明

Windows系统缺少wldp.dll文件导致程序无法运行问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个wldp.dll文件(挑选合

额外说明

wordpress 菜单_如何在WordPress中创建粘性浮动导航菜单

WordPress 菜单 您是否注意到许多流行网站现在都使用粘性导航菜单。通常,导航菜单显示在顶部,并在用户向下滚动时消失。当用户向下滚动时,粘性导航菜单会浮动,并且始终在屏幕上可见。在本文中,我们将向您展示如何在 WordPress 中轻松创建粘性浮动

额外说明

介绍一款超好用的IDEA的注释插件——Easy Javadoc

Easy Javadoc插件时一款快速生成注释的插件,帮助我们减少编码还要写注释的烦恼。 在插件市场直接搜索easy javadoc安装后重启IDEA 在setting中找到other setting展开 二级栏目下可以配置类的注释,方法的注释和属性的注

ads via 小工具