socket模块
1
1.1 server:
#!/use/local/env python
# -*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1', 9999)
#ip_port = ('0.0.0.0', 9999) #所有IP
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5) while True:
print('server wainting ...')
conn, add = sk.accept() client_data = conn.recv(1024)
print(str(client_data, encoding='utf-8'))
conn.sendall(bytes('不要回答,不要回答,不要回答', encoding='utf-8'))
# conn.sendall(bytes('不要回答,不要回答,不要回答', 'utf-8'))
# conn.sendall(bytes('不要回答,不要回答,不要回答', 'utf8')) conn.close() 1.2 client:
#!/use/local/env python
# -*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1', 9999)
sk = socket.socket()
sk.connect(ip_port) sk.sendall(bytes('请求占领地球,请求占领地球,请求占领地球', encoding='utf-8'))
server_reply = sk.recv(1024)
print(str(server_reply, encoding='utf-8'))
sk.close() 2
2.1 server:
#!/use/local/env python
# -*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1', 9999)
#ip_port = ('0.0.0.0', 9999) #所有IP
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5) while True:
print('server wainting ...')
conn, add = sk.accept() client_data = conn.recv(1024) #字符数
print(str(client_data, encoding='utf-8'))
conn.sendall(bytes('不要回答,不要回答,不要回答', encoding='utf-8'))
# conn.sendall(bytes('不要回答,不要回答,不要回答', 'utf-8'))
# conn.sendall(bytes('不要回答,不要回答,不要回答', 'utf8')) while True:
try:
client_data2 = conn.recv(1024)
except Exception:
break
conn.send(client_data2) conn.close() 2.2 client:
#!/use/local/env python
# -*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1', 9999)
sk = socket.socket()
sk.connect(ip_port) sk.sendall(bytes('请求占领地球,请求占领地球,请求占领地球', encoding='utf-8'))
server_reply = sk.recv(1024)
print(str(server_reply, encoding='utf-8'))
while True:
user_input = input(">>").strip()
sk.sendall(bytes(user_input, encoding='utf-8'))
server_reply2 = sk.recv(1024)
print(str(server_reply2, encoding='utf-8')) sk.close() 3 ssh_socket
3.1 server
#!/usr/local/env python
# -*- coding:utf-8 -*- import socket, subprocess num = 100 sk = socket.socket()
ip_port = ('0.0.0.0', 9999)
sk.bind(ip_port)
sk.listen(5) count = 0
while True:
count += 1
print("server is waiting [%s]..." %count)
conn, add = sk.accept()
#client_data = conn.recv(1024)
#print(str(client_data, encoding='utf-8'))
#conn.sendall(bytes('不要回答{3}', encoding='utf-8')) while True:
client_data = conn.recv(num)
if not client_data:
print('recv is empty')
break
cmd_str = str(client_data, encoding='utf-8')
cmd_call = subprocess.Popen(cmd_str, shell=True, stdout=subprocess.PIPE)
cmd_res = cmd_call.stdout.read()
if len(cmd_res) == 0:
#if not cmd_res:
cmd_res = b"has no output!\n"
conn.send(cmd_res)
conn.close()
3.2 client
#!/usr/local/env python
# -*- encoding:utf-8 -*- import socket num = 100
sk = socket.socket()
ip_port = ('10.100.11.211', 9999)
sk.connect(ip_port) while True:
user_input = input('cmd>').strip()
if len(user_input) == 0:
continue
elif user_input == 'q':
break
sk.sendall(bytes(user_input, encoding='utf-8')) server_data = sk.recv(num)
print(str(server_data, encoding='utf-8'), end='')
while not (len(server_data) < num):
server_data = sk.recv(num)
print(str(server_data, encoding='utf-8'), end='')
sk.close() 4 ssh传大数据
4.1 server
#!/usr/local/env python
# -*- coding:utf-8 -*- import socket, subprocess num = 500 sk = socket.socket()
ip_port = ('0.0.0.0', 9999)
sk.bind(ip_port)
sk.listen(5) count = 0
while True:
count += 1
print("server is waiting [%s]..." %count)
conn, add = sk.accept()
#client_data = conn.recv(1024)
#print(str(client_data, encoding='utf-8'))
#conn.sendall(bytes('不要回答{3}', encoding='utf-8')) while True:
client_data = conn.recv(num)
if not client_data:
print('recv is empty')
break
cmd_str = str(client_data, encoding='utf-8')
cmd_call = subprocess.Popen(cmd_str, shell=True, stdout=subprocess.PIPE)
cmd_res = cmd_call.stdout.read()
if len(cmd_res) == 0:
#if not cmd_res:
cmd_res = b"has no output!\n"
CMD_RES_SIZE_MSG = bytes('SEND_DATA_SIZE:%s' %(len(cmd_res)), encoding='utf-8') conn.send(CMD_RES_SIZE_MSG)
conn.recv(50)
conn.send(cmd_res)
conn.close()
4.2 client
#!/usr/local/env python
# -*- encoding:utf-8 -*- import socket num = 500
sk = socket.socket()
ip_port = ('10.100.11.211', 9999)
sk.connect(ip_port) while True:
user_input = input('cmd>').strip()
if len(user_input) == 0:
continue
elif user_input == 'q':
break
sk.sendall(bytes(user_input, encoding='utf-8')) CMD_SIZE_MSG = sk.recv(50)
CMD_SIZE_MSG = str(CMD_SIZE_MSG, encoding='utf-8')
#CMD_RES_SIZE_MSG = 'SEND_DATA_SIZE:%s' %(len(cmd_res))
CDM_SIZE_GET = CMD_SIZE_MSG.split(':')
CMD_SIZE = 0
if CDM_SIZE_GET[0] == 'SEND_DATA_SIZE':
CMD_SIZE = int(CDM_SIZE_GET[1])
CMD_ACK = b'ready'
sk.send(CMD_ACK) recv_size = 0
while recv_size < CMD_SIZE:
server_data = sk.recv(num)
recv_size += len(server_data)
print(str(server_data, encoding='utf-8'), end='') #print(str(server_data, encoding='utf-8'), end='')
#while not (len(server_data) < num):
# server_data = sk.recv(num)
# print(str(server_data, encoding='utf-8'), end='')
sk.close()
socket模块的更多相关文章
- socket编程--socket模块介绍
socket也称作'套接字,用于描述IP地址和端口,是一个通信的终点. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写] ...
- Python中的socket 模块
Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...
- Python网络编程(2)——socket模块(2)
目录: 1. 异常 2. 地址族 3. 套接字类型 4. 模块方法 5. Socket对象与实例方法 socket模块提供了Python中的低层网络连接接口,用于操作套接字操作. 异常 socket模 ...
- 第五十五节,IO多路复用select模块加socket模块,伪多线并发
IO多路复用select模块加socket模块,伪多线并发,并不是真正的多线程并发,实际通过循环等待还是一个一个处理的 IO多路复用,lo就是文件或数据的输入输出,IO多路复用就是可以多用户操作 IO ...
- 第五十三节,socket模块介绍,socket单线程通讯
socket单线程通讯,只能单线程通讯,不能并发 socket是基于(TCP.UDP.IP)的通讯.也叫做套接字 通讯过程由服务端的socket处理信息发送,由客户端的socket处理信息接收. so ...
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具
老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...
- python实战第一天-socket模块练习
操作系统 Ubuntu 15.10 IDE & editor JetBrains PyCharm 5.0.2 ipython3 Python版本 python-3.4.3 导入socket模块 ...
- python学习记录-socket模块
主要使用的模块是socket模块,在这个模块中可以找到socket()函数,该函数用于创建套接字对象.套接字也有自己的方法集,这些方法可以实现基于套接字的网络通信. 1.socket类型 构造函数: ...
- 网络协议,socket模块
"""网络通讯要素:1.物理介质2.通讯协议 osi五层模型 应用层 传输层 网络层 数据链路层 物理层 物理层能传输010101二进制单纯的二进制是没有意义的,必须得知 ...
- python之socket模块详解--小白博客
主要是创建一个服务端,在创建服务端的时候,主要步骤如下:创建socket对象socket——>绑定IP地址和端口bind——>监听listen——>得到请求accept——>接 ...
随机推荐
- Linux内核-模块编译和安装
我安装Ubuntu的时候是没有安装源码的,在没有安装源码前 /usr/src/ 目录下是只有两个包含内核的头文件的文件夹的: 我的内核版本是: 所以接下来就是先安装内核源码: 执行后,/usr/src ...
- 简单的php Mysql类(查询 删除 更新)
php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了. 代码如下 复制代码 class mysql { ...
- catch的执行与try的匹配
这里有一段代码: public class EmbededFinally { public static void main(String args[]) { int result; try { Sy ...
- (转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage
原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage ...
- ubuntu 新系统需要做的事
1 : 打开语言支持 开始补齐并且选择自己需要的语言包 . 2 : 搜索计算机 输入 update 找到软件更新器 更新软件库 . 然后打开ubuntu自带软件安装工具下载自己想要的软件(没有更新之前 ...
- 又见蒙特卡洛——python模拟解决三门问题
三门问题很有意思,wiki用不同方法将原理讲的很透彻了,我跟喜欢其中这种理解方式:无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换.如果参赛者先选中山羊,换之后百分之百赢:如果参赛者先选中 ...
- HDOJ-三部曲一(搜索、数学)-1006- Catch That Cow
Catch That Cow Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Tot ...
- Testing the CATCHER_DP
Description A military contractor for the Department of Defense has just completed a series of preli ...
- python学习札记(1)
首先给大家推荐一个很好的python入门网站,感觉比<python基础>之类的书更容易懂,廖雪峰小站,希望有学习资源同学们也能多多交流.下面是今天所学: 下面总结一些非常有特色的函数及其应 ...
- mysql主从同步mysql slave_io_running:no的解决方案
在主从同步的时候出现slave_io_running:no 问题,于是查看mysqld.log日志,发现时1042错误 解决方案: 编辑/etc/my.cnf,在:[mysqld]内添加一行:skip ...