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的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层 ...
随机推荐
- 响应式布局 Bootstrap
github介绍 (1)简单灵活可用于架构流行的 用户界面和交互接口 的html.css.javascript工具集 (2)基于html5.css3的bootstrap,具有大量的诱人特征: 友好的学 ...
- pixelmator处理png图片,处理掉过白的留白。
作为一个CTO,还是得学会一些普通的修图技术的.这不,刚学会在pixelmator下如何处理png中过多的留白. 汗,其实就是一个菜单选项而已./image/trim canvas 效果如下:
- QT 调用VS2015编写的Dll
最近在用QT调用VC生成的库,QT使用的是MinGW调试器,出现与动态库不兼容的问题,最后发现QT只能识别VC生成的C格式下的动态库 也就是在导入导出设置时加入extern "C" ...
- Python Set Literals
现有3种方式创建set() >>> def f(): ... return set([1, 2, 3]) ... >>> def h(): ... return s ...
- Django补充及初识Ajax
Django创建一对多表结构 首先现在models.py中写如下代码: from django.db import models # Create your models here. class Bu ...
- cocos2d-x 运行时xcode提示错误:"vtable for XXX", referenced from 问题已解决;
vtable/引用和虚函数相关,今天在添加一个层的时候报了这个错误,很低级的错误,忘了实现虚函数了(谨记!!) 若如果实现了虚函数还依然如此的话,可能是创建的时候忘了钩上 -desktop 选项了,把 ...
- SVN迁项目
next -> 做为新项目检出,finish -> next -> finish -> 否,是
- 开始学习c语言
学习c语言的第一篇博客,心里的感觉说不出来,不知道能不能坚持下去,我是一名工作了差不多2年的phper,其实我本来是想学习数据结构和算法的,但是尼玛这年头那些书的例子都不是php,动不动就是c,jav ...
- UDP server & client
Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...
- Extjs 一些配置以及方法
1.例如想要实现以下功能,本来model中只有用户的firstname和lastname,但是在grid中展示还需要展示用户姓名,或者只展示用户姓名