socket(二)
作用域
|
1
2
3
|
if 1 == 1: name = 'alex'print(name) |
|
1
2
3
4
|
# if 1 == 1:# name = 'alex'# print(name)#输出结果为alex |
|
1
2
3
4
5
6
7
8
9
10
11
|
# for i in range(10):# name = i# print((name))#输出结果为:9# def func():# name = 'alex'# func()## print(name)#执行结果报错:name is notdefined |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
name = 'alex'def f1(): print(name)def f2(): name = 'eric'""""""name = 'alex'def f1(): print(name)def f2(): name = 'eric' return f1ret = f2()ret()""""""li = [lambda :x for x in range(10)]r = li[0]()print(r) |
I/O多路复用
server端:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import socketimport selectsk = socket.socket()sk.bind(('127.0.0.1', 9999,))sk.listen(5)inputs = [sk, ]while True: rlist, w, e = select.select(inputs,[],[],1) #inputs:列表中存放sk,和conn对象,如果有新连接请求过来,sk对象就会变化,rlist就等于sk, #如果是已经建立的连接,发过来消息,返回的就是conn的对象 print(rlist) # 监听sk(服务器端)对象,入股osk对象发生变化,表示客户端来连接了,此时rlist值为[sk] # 监听conn对戏那个,如果conn发生变化,表示客户端有新消息发送过来了,此时rlist的值为[客户端] # rlist = [wuwenyu,] # rlist = [zhanglei, ] # rlist = [sk] # rlist 中socket对象列表,[sk,] for r in rlist: if r == sk: #新客户来连接,则建立新的conn,把conn加入到inputs列表中 #如果r != sk,则是已经建立连接的对象,conn,那么conn接收消息。 conn, address = r.accept() #conn是什么? 其实就是socket对象 inputs.append(conn) conn.sendall(bytes('hello', encoding='utf-8')) #rlist = [sk,], rlist =[sk1,],rlist = [sk1,sk2] #rlist = [] else: #有人给我发消息了 r.recv(1024) |
client端:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import socketsk = socket.socket()sk.connect(("127.0.0.1", 9999, ))data = sk.recv(1024)print(data)while True: inp = input(">>>") sk.sendall(bytes(inp, encoding='utf-8'))sk.close() |
socket(二)的更多相关文章
- Python网络编程—socket(二)
http://www.cnblogs.com/phennry/p/5645369.html 接着上篇博客我们继续介绍socket网络编程,今天主要介绍的内容:IO多路复用.多线程.补充知识点. 一.I ...
- 通信(二):进程间通信之socket
一.为什么要学习socket? 我们打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?我们用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket.本地的进程间通 ...
- 通过Socket实现TCP编程(十二)
原文链接:https://www.cnblogs.com/hysum/p/7531529.html Socket通信 : TCP协议是面向对象连接.可靠的.有序的,以字节流的方式发送数据. 基于TCP ...
- Nginx 之二: nginx.conf 配置及基本优化
一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...
- 【Socket编程】通过Socket实现TCP编程
通过Socket实现TCP编程 Socket通信 : 1.TCP协议是面向对象连接.可靠的.有序的,以字节流的方式发送数据. 2.基于TCP协议实现网络通信的类: 客户端----Socket类 服务器 ...
- Python网络编程socket
网络编程之socket 看到本篇文章的题目是不是很疑惑,what is this?,不要着急,但是记住一说网络编程,你就想socket,socket是实现网络编程的工具,那么什么是socket,什么是 ...
- python网络编程:socket套接字
一.socket 二.TCP服务器 三.TCP客户端 四.UDP服务器 五.UDP客户端 六.聊天的客户端 七.聊天的服务器 一.socket """ 学习网络编程 其实 ...
- Android源码阅读 – Zygote
@Dlive 本文档: 使用的Android源码版本为:Android-4.4.3_r1 kitkat (源码下载: http://source.android.com/source/index.ht ...
- 【读书笔记】iOS网络-底层网络
在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层 ...
随机推荐
- bash shell + python简单教程,让你的mac/linux终端灰起来~
前提条件:已经安装python,命令行支持bash 在bash_profile中添加 function ccolor { python /Users/xirtam/Documents/tools/cc ...
- 79. Word Search
使用的别人的思路,用一个二维数组记录每一个位置是否用过,然后通过递归来判断每一个位置是否符合 public class Solution { public boolean exist(char[][] ...
- RPM包管理命令rpm
RPM包管理器是Linux系统中最早的软件包管理软件之一,也是目前最流行的软件包管理器,许多发行版都使用RPM作为默认的软件包管理软件. RPM软件包名称格式: samba-client-3.0.33 ...
- vim - save current file with a new name but keep editing current file
http://superuser.com/questions/414110/vim-save-a-file-as-a-different-filename-but-keep-w-as-the-curr ...
- Linux CentOS 中安装 MySql
CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com ...
- ThinkPHP3.1快速入门(1)基础
学习网址:http://www.thinkphp.cn/document/60.html
- C# 去掉List重复元素的方法
因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List<string> li1 = new List<string> { "8&quo ...
- REM 布局
1.rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位 2.为什么web app要使用rem? 实现强大的屏幕适配布局(淘宝,腾讯,网 ...
- 链接属性rel=’external’、rel=’nofollow’、rel=’external nofollow’三种写法的区别
链接属性rel='external'.rel='nofollow'.rel='external nofollow'三种写法的区别 大家应该都知道rel='nofllow'的作用,它是告诉搜索引擎, ...
- hashmap的底层实现
HashMap的底层实现都是数组+链表结构实现的,添加.删除.获取元素都是先计算hash值,根据hash值和table.length计算出index也就是table的数组的下标,然后进行相应的操作. ...