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 f1 ret = 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 socket import select sk = 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 socket sk = 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的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层 ...
随机推荐
- dragdrop 修改版
<!DOCTYPE html> <html lang="en"> <head> <meta name="keywords&quo ...
- python垃圾回收机制的一些理解
概览: 主要通过 引用计数来进行垃圾收集, 就是说,当一个对象没有被其他对象引用的时候,会释放掉内存. 但是会有一些循环引用的对象,通过上面的方法,是没有办法清除掉的.所以,pyt ...
- SqList *L 和 SqList * &L的区别/学习数据结构突然发现不太懂 小祥我查找总结了一下
小祥在学习李春葆的数据结构教程时发现一个小问题,建立顺序表和输出线性表,这两个函数的形参是不一样的. 代码在这里↓↓↓ //定义顺序表L的结构体 typedef struct { Elemtype d ...
- mui框架使用的过程中遇到的几个问题
1.zepto.js和mui一起使用的时候,tap事件会发生两次,这时只要不引用zepto.js的touch.js就可以了,只用mui的tap事件,如: mui(".infor_header ...
- vim - mark
Using markshttp://vim.wikia.com/wiki/Using_marks1. There is no visible indication of where marks are ...
- css表示屏幕宽度和高度
expression(document.body.offsetWidth + "px"); expression(document.body.offsetHeight + &quo ...
- Java提高篇——理解String 及 String.intern() 在实际中的应用
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ...
- 使用Struts 2防止表单重复提交
用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...
- C#获取EF实体对象或自定义属性类的字段名称和值
在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值.修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里.现 ...
- lua 基础 2 类型和值
-- 类型 和 值--[[ 8中类型 滚动类nil.boolean. number.string.userdata.function.thread 和 table.]] print (type(&qu ...