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)        #所有IPsk = 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()

22.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)        #所有IPsk = 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_socket3.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 = 0while 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 = 100sk = 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 = 0while 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 = 500sk = 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()
时间: 2024-10-11 05:04:04

socket模块的相关文章

python——socket模块与列表映射

从socket模块学习中的一段奇怪代码说起 前言:在学习python标准库中的Socket模块中,发现了一段奇怪的代码. import socket def get_constants(prefix): dicts=dict((getattr(socket,n),n) for n in dir(socket) if n.startswith('IPPROTO_')) print (dicts) 疑问:上述代码中的for..in..循环语句和if 语句都没有冒号结束.为什么? 答案:因为上述“异常

python之socket模块

UDP client #!/usr/bin/env python2.7 #-*-coding:utf-8 -*- import socket s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.sendto("hello",("localhost",8001)) data,addr = s.recvfrom(1024) print "receive data:%s from %s" % (dat

Python中的socket 模块

Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面先讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字.socket类型描述socket.AF_UNIX只能够用于单一的Unix系统进程间通信so

python 学习笔记day09-pythonz正则表达式、socket模块

RE模块 核心函数和方法 match函数 尝试用正则表达式模式从字符串的开头匹配,如果匹配成功,则返回一个匹配对象,否则返回None >>> re.match('foo','food')   #在food 搜索foo             <_sre.SRE_Match object at 0xb70babb8>            >>> m = re.match('foo','food')            >>> m.grou

python基础===socket模块的讲解(转)

一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听.两端使用各自的socket来发送和 接收信息. 在使用的时候,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76):端口数值的取

socket编程--socket模块介绍

socket也称作'套接字,用于描述IP地址和端口,是一个通信的终点. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) socket和file的区别: file模块是针对某个指定文件进行[打开][读写][关闭] socket模块是针对 服务器端 和 客户端Socket 进行[打

python学习1:socket模块(TCP/IP网络编程)

本文只关心python的网络编程,并重点学习TCP/IP单元. 一.简单了解下: 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的.         UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议.它是属于TCP/IP协议族中的一种.        这里有一张图,表明了这些协议的关系.

python学习笔记(socket模块)

1.socket模块使用要分为服务端及客户端,服务端用于接收并处理请求,然后把请求数据回传回到客户端,客户端用于读取数据.关闭连接.最后结束交互 2.服务端socket模块使用步骤: 1 import socket 2 3 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 4 phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 5 phone.bind(('127.0.

Python的socket模块详解

一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听.两端使用各自的socket来发送和 接收信息. 在使用的时候,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76):端口数值的取

socket()模块和套接字对象的内建方法

一.socket()模块函数 要使用socket.socket()函数来创建套接字,其语法如下: socket(socket_family,socket_type,protocol=0) 如上所述,scoket_family不是AF_UNIX就是AF_INET,scoket_type可以是SOCK_STREAM或SOCK_DGRAM,protocol一般不填,默认值为0. 创建一个TCP/IP套接字,你要这样调用socket.socket(): tcpsock = socket.socket(s