Python3学习之路~8.3 socket 服务端与客户端
通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤:
服务端
步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭。
#Author:Zheng Na
# 服务端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket实例
server.bind(('localhost', 6969)) # 绑定要监听的端口
server.listen() # 监听
while True: # 保证一个客户端断开后,服务端等待其他客户端连接,否则服务端随着客户端一同断开(linux系统执行成功,Pycharm中随着客户端断开而断开?)
print("等待新的连接")
conn, addr = server.accept() # 阻塞,等待信息传送
print("new conn: ", addr)
while True: # 保证客户端可向服务端多次发送数据
data = conn.recv(1024) # 接收数据
if not data: # 防止服务端因客户端关闭而进入死循环
print("client is lost...")
break
print("recv from client: ", data)
conn.send(data.upper()) # 发送数据
server.close() # 关闭
客户端
步骤:1创建实例,2连接,3发送&接收数据,4关闭。
#Author:Zheng Na
# 客户端
import socket
client = socket.socket() # 创建socket实例
client.connect(('localhost', 6969)) # 连接
while True:
msg = input(">>: ").strip()
if len(msg) == 0: continue
client.send(msg.encode("UTF-8")) # 发送数据
data = client.recv(1024) # 接收数据
print("recv from server: ", data)
client.close() # 关闭
总结

Python3学习之路~8.3 socket 服务端与客户端的更多相关文章
- C# Socket服务端与客户端通信(包含大文件的断点传输)
步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤: (1)建立一个Socket (2)接收 ...
- Python3学习之路~8.2 socket简单实例 实现ssh 发送大量数据
实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 cl ...
- Python3学习之路~8.1 socket概念及参数介绍
一 socket介绍 TCP/IP 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序. socket概念 ...
- socket系列之socket服务端与客户端如何通信
上面已经分别介绍了ServerSocket跟Socket的工作步骤,并且从应用层往系统底层剖析其运作原理,我们清楚了他们各自的一块,现在我们将把他们结合起来,看看他们是如何通信的,并详细讨论一下他们之 ...
- PHP socket服务端与客户端的简易通信
今天学习socket通信的同时,顺便整理了下以前初识socket的知识. 现在关于php的socket通信,有些框架已经十分成熟了,比如 swoole 和 workerman,这两个大家可以学习学习 ...
- C# Socket服务端和客户端互相send和receive
服务端 { ]; ; { ...
- Socket服务端和客户端文件传输
很多朋友在使用socket编程时不可避免的都做过文件传输,而视频电影等需要一个字节一个字节的传输:但是客户端一般都通过-1进行终止,服务也一样:但是存在的问题是客户端永远不会把-1传递给服务端:因此经 ...
- golang的socket服务端与客户端
服务端 服务端的处理流程 监听端口 接收客户端的链接 创建goroutine,处理该链接 package main import ( "fmt" "net" ) ...
- Socket服务端和客户端(C++,CodeBlocks+GCC编译)
//main.cpp 1 #include "j_socket.h" #include <stdio.h> #include <pthread.h> ; j ...
随机推荐
- python中将图片从客户端(client)推到(POST)到服务器端(server)的方法
从客户端推json到服务器端的工作可以用flask很容易做到,那么需要推送图片的话可以先将图片存到json中再进行操作. 服务器端 from flask import request, Flask i ...
- metroui
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- MangoDB学习笔记
01. 数据库操作 1. 查看当前数据库名称 db 2. 查看所有数据库名称,列出所有在物理上存在的数据库 show dbs; 3. 切换数据库,如果数据库不存在也并不创建,直到插入数据或创建集合时数 ...
- Qt编写通用主界面V2019
其实是2018年做出来的这个界面效果,用该界面做了三四个项目,今天抽空特意提取出来单独的demo,集成到了皮肤生成器中.
- C语言结构体初始化(转载)
<代码大全>建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化. 1.初始化 typedef struct _TEST_ ...
- B - 取(2堆)石子游戏
有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者. ...
- ssm文件配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- [Android实例] app引导页(背景图片切换加各个页面动画效果)(申明:来源于网络)
[Android实例] app引导页(背景图片切换加各个页面动画效果)(申明:来源于网络) 地址: http://www.eoeandroid.com/thread-918356-1-1.html h ...
- .NET Core开发日志——从ASP.NET Core Module到KestrelServer
ASP.NET Core程序现在变得如同控制台(Console)程序一般,同样通过Main方法启动整个应用.而Main方法要做的事情很简单,创建一个WebHostBuilder类,调用其Build方法 ...
- 为何串口dma发送数据可能不完整
串口dma数据发送不完整, 1. 通过打印log说明数据合成,送给dma buff都是正常的. 2. 数据通过硬件串口直接配置,是正常的 3. 数据通过单片机dma转发后数据异常,通过检查发现 dma ...