通过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 服务端与客户端的更多相关文章

  1. C# Socket服务端与客户端通信(包含大文件的断点传输)

    步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收 ...

  2. Python3学习之路~8.2 socket简单实例 实现ssh 发送大量数据

    实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 cl ...

  3. Python3学习之路~8.1 socket概念及参数介绍

    一 socket介绍 TCP/IP 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序. socket概念 ...

  4. socket系列之socket服务端与客户端如何通信

    上面已经分别介绍了ServerSocket跟Socket的工作步骤,并且从应用层往系统底层剖析其运作原理,我们清楚了他们各自的一块,现在我们将把他们结合起来,看看他们是如何通信的,并详细讨论一下他们之 ...

  5. PHP socket服务端与客户端的简易通信

    今天学习socket通信的同时,顺便整理了下以前初识socket的知识. 现在关于php的socket通信,有些框架已经十分成熟了,比如  swoole 和 workerman,这两个大家可以学习学习 ...

  6. C# Socket服务端和客户端互相send和receive

    服务端           {          ];          ;                                       {                       ...

  7. Socket服务端和客户端文件传输

    很多朋友在使用socket编程时不可避免的都做过文件传输,而视频电影等需要一个字节一个字节的传输:但是客户端一般都通过-1进行终止,服务也一样:但是存在的问题是客户端永远不会把-1传递给服务端:因此经 ...

  8. golang的socket服务端与客户端

    服务端 服务端的处理流程 监听端口 接收客户端的链接 创建goroutine,处理该链接 package main import ( "fmt" "net" ) ...

  9. Socket服务端和客户端(C++,CodeBlocks+GCC编译)

    //main.cpp 1 #include "j_socket.h" #include <stdio.h> #include <pthread.h> ; j ...

随机推荐

  1. glob通配符

    描述glob是shell使用的路径匹配符,类似于正则表达式,但是与正则表达式不完全相同.在linux操作中如文件匹配等等其实已经使用了glob通配符.由于其在路径匹配方面的强大,其他语言也有相应的实现 ...

  2. THINKPHP5 volist标签循环不能设置循环变量为$i

    在thinkphp5的volist标签中不要用$i作为id,举个简单例子 控制器这样写 模板这样写 结果是 这很令人费解啊.然后换一个循环变量看看 循环正常了,看来这个id这里设置循环变量的时候 不能 ...

  3. android 手机 多分辨率适配

    近来在做android屏幕适配这方面的工作, 今天总算有点眉目.  小记一下 基础知识就不科普了, 网上一大堆. 作为一个刚接触这方面人, 最先进入我脑子的, 是从小到大的各种屏, 小到手表, 大到街 ...

  4. js 获取验证码计时器

    效果图: 贴上代码: <div class="logintitle"> <input type="tel" id="mobile&q ...

  5. 终端IO(上)

    一.综述 终端IO有两种不同的工作方式: 规范方式输入处理.在这种方式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行. 非规范方式输入处理.输入字符不以行为单位进行装配 如果 ...

  6. C#利用反射实现两个类的对象之间相同属性的值的复制

    http://blog.csdn.net/u013093547/article/details/53584591 今天在拷贝对象的时候,看着代码实在是有点烦,一堆一样的代码,还是找找有没有直接反射拷贝 ...

  7. 深入web开发之webserver/servlet容器

    可能按照书上的demo,自己就能做个小型网站,但是在并发下是什么情况呢?生成了多少对象?对象的关系又是什么?这些问题都要慢慢弄清楚. ------作为后端工程师,不仅要会增删改查,还要了解servle ...

  8. js arrayBuffer 字节序问题,小端法,大端法

    原文博客 { var buffer = new ArrayBuffer(2) var bytes = new Uint16Array(buffer) bytes[0] = (65 << 8 ...

  9. javascript parseUrl函数(来自国外的获取网址url参数)

    function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, pr ...

  10. JSCS: Please specify path to 'JSCS' package

    JSCS: Please specify path to 'JSCS' package 1.webStrom提示: JSCS: Please specify path to 'JSCS' packag ...