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 ...
随机推荐
- mybatis 传入多个参数
一.单个参数: public List<XXBean> getXXBeanList(@param("id")String id); <select id=&quo ...
- fiddler工作原理和代理设置
1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...
- 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V2
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——增加WriteQueue队列,存放selectionKey.addWriteEventToQueue()添加selectionKey并唤醒阻 ...
- 大杂烩 -- Java内存布局【图】以及java各种存储区【详解】
基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 一.Java内存布局浅谈 1. 总述 我们知道,线 ...
- 4. Oracle数据库用户管理备份与恢复
一. Oracle用户管理备份介绍 Oracle物理备份核心就是将物理文件拷贝一份副本:存放在磁盘上.物理文件指的是:数据文件,控制文件,日志文件,参数文件等等. 根据数据库状态而分:备份可分为热备份 ...
- Go学习笔记(三)Go语言学习
这里我就不写具体的教程了,整理了一些很适合入门学习的网站 菜鸟Go入门 http://www.runoob.com/go/go-basic-syntax.html Go 语言的基本数据类型 https ...
- Shell----简单整理
------------------------------------------------------------------Shell脚本--------------------------- ...
- mysql 语句 字段 和结构主键外键的增删改
primary key 主键 notnull 不为空 unique 唯一 foreign key(外键) references t1(id) auto_increment ...
- [No0000D3]bat当前路径currentPath.bat
@echo off echo 当前盘符:%~d0 echo 当前盘符和路径:%~dp0 echo 当前批处理全路径:%~f0 echo 当前盘符和路径的短文件名格式:%~sdp0 echo 当前CMD ...
- LU decomposition can be viewed as the matrix form of Gaussian elimination.
https://en.wikipedia.org/wiki/LU_decomposition One way to find the LU decomposition of this simple m ...