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 ...
随机推荐
- Http Referer的一些总结
以前对Http中Referer的认识不够透彻.最近理了理,记录一下. 1 Referer可以记录访问的来源,统计访问量,可以用来防盗链. 2 客户端用js不能篡改Referer,用一些插件什么的可以达 ...
- IntelliJ IDEA连接TFS local workspace无法正常签入
前几天为了便于在本地修改,将TFS workspace的类型从Server修改为Local.基于Visual Studio的开发正常没有问题,用IntelliJ IDEA时却提示以下错误: Error ...
- Redmine发布新闻,自动发送邮件功能失效恢复
问题描述:操作数据库,修改项目公开状体后,创建新闻,自动发送邮件功能失效. 问题检查和恢复测试: 1.检查管理员权限 2.重新手动配置项目公开状态,覆盖数据操作 3.对比其他正常项目数据库状态,进行恢 ...
- discuz 忘记安全密码的处理方式 修改pre_common_setting表的数据,
一定要记住不要清空pre_common_setting表的数据,会给你带来烦恼的!!!!!只修改siteuniqueid 这条数据的密码就行!!!! 也可以先用我这条密码系统自动加密后:[DXRGYC ...
- RPC框架-通俗易懂的解释
早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能.这不是整人么?于是就出现了IPC( ...
- 洛谷P1433 吃奶酪【dfs】【剪枝】
题目:https://www.luogu.org/problemnew/show/P1433 题意: 给定n个坐标,要求从(0,0)开始走遍所有点,最少经过的路程. 思路: 刚开始想像数字三角形一样适 ...
- 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS
ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void Configu ...
- -bash: fork: Cannot allocate memory
今天遇到服务器无法SSH,VNC操作命令提示fork:cannot allocate memory free查看内存还有(注意,命令可能要多敲几次才会出来) 查看最大进程数 sysctl kernel ...
- Ubuntu启动时a start job is running for dev-disk-by延时解决
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- c#构造函数对string类型赋初值
public class Stu { public Stu() { //当成员属性非常多难以一一赋值时,采用本方法.当然写代码逐一成员直接赋值效率更高. AssignEmptyStringMember ...