实例一、

server:
  #socket套接字(IP + 端口号)(qq,wechat 发送接收消息依靠socket模块),cs架构
import socket
server = socket.socket()
  #实例化出一个socket对象,默认tcp/ip协议
server.bind(('127.0.0.1',8888))
  #绑定客户端,VIP,元组形式,('')相当于('0.0.0.0')
  #声明出client端该访问那个地址和端口号
server.listen(5)
  #半连接池,listen(5)最大连接数
print('wait telephone..........')
conn,addr = server.accept()
  #监听是否有客户端来连接
  #运行会产生两个返回值:连接信息,客户端信息
print('call telephone............')
data = conn.recv(10240)
  #接收到的信息。10240:最大接受的字节,随便写'
print(data.decode('utf-8'))

client:
importsocket
client=socket.socket()
client.connect(('127.0.0.1',8888))
cmd=input('==>:')
client.send(cmd.encode('utf-8'))

结果:

实例2、

利用subprocess模块和socket模块在其他主机执行cmd命令:
server:
import socket,subprocess
server = socket.socket()
server.bind(('127.0.0.1',8888))
server.listen(5)
print('wait telephone..........')
conn,addr = server.accept()
print('call telephone............')
while True:
cmd = conn.recv(10240)
process = subprocess.Popen(cmd.decode('utf-8'),
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
stdout=process.stdout.read()
stderr=process.stderr.read()
result = stdout+stderr
conn.send(result) client:
import socket
client = socket.socket()
client.connect(('127.0.0.1',8888))
while True:
cmd = input('==>:').strip()
if cmd:
client.send(cmd.encode('utf-8'))
else:
continue
result = client.recv(10240)
print(result.decode('gbk'))

 结果: 

实例3、

简易聊天软件(首先利用socket建立两台机器的通信,再利用多线程让发送消息和接收消息同时运行。)

server:
import socket,threading
server = socket.socket()
server.bind(('127.0.0.1',8888))
server.listen(5)
print('wait telephone..........')
conn,addr = server.accept()
print('call telephone............')
def recv():
while True:
data = conn.recv(1024)
print(data.decode('utf-8'))
def send():
while True:
cmd = input('==>:')
conn.send(cmd.encode('utf-8'))
t1 = threading.Thread(target=recv)
t2 = threading.Thread(target=send)
t1.start()
t2.start() client:
import socket,threading
client = socket.socket()
client.connect(('127.0.0.1',8888))
def send():
while True:
cmd = input('==>:').strip()
client.send(cmd.encode('utf-8'))
def recv():
while True:
data = client.recv(1024)
print(data.decode('gbk')) t1 = threading.Thread(target=recv)
t2 = threading.Thread(target=send)
t1.start()
t2.start()

 结果:

 

实例4、

检查IP地址和端口号通不通:

import socket
hosts = ['192.168.254.12:80','192.168.254.12:3306','2.2.2.2:80','3.3.3.3:80']
socket.setdefaulttimeout(1) for host in hosts:
ip = host.split(':')[0]
port = host.split(':')[1]
server = socket.socket()
res = server.connect_ex((ip,int(port)))
# 如果res为0代表ok,不为0代表连接失败
if res == 0:
print('%s is ok' % ip)
else:
print('%s is 不ok' % ip) import socket
socket.setdefaulttimeout(1) #超时时间
host_list = ['192.168.4.145:5555','192.168.4.146:555','192.168.4.147:5555','192.168.31.199:445']
for info in host_list:
server = socket.socket()
ip = re.compile('(.*?):(.*)').search(info).group(1)
port = re.compile('(.*?):(.*)').search(info).group(2)
res = server.connect_ex((ip, int(port)))
if res == 0:
print('%s--%s端口正常' % (ip, port))
else:
print('%s--%s端口异常' % (ip, port))

python模块——socket的更多相关文章

  1. Python模块 Socket

    一个简单的python socket编程 一.套接字 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并 ...

  2. python模块—socket

    创建套接字: socket.socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. 1. socket类型: socket.AF ...

  3. python模块——socket (实现简单的C/S架构端通信操作CMD)

    # 服务端代码#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" import socket impo ...

  4. python模块之socket

    43.python模块之socket:       Python在网络通讯方面功能强大,学习一下Socket通讯的基本方式 UDP通讯: Server: import socket port=8081 ...

  5. 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

    老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...

  6. python中socket模块详解

    socket模块简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket通常被叫做"套接字",用于描述IP地址和端口,是一个通信 ...

  7. Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端     import ...

  8. 使用 Python 的 Socket 模块构建一个 UDP 扫描工具

    译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来 ...

  9. Python底层socket库

    Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...

随机推荐

  1. [Vijos] 遭遇战

    背景 你知道吗,SQ Class的人都很喜欢打CS.(不知道CS是什么的人不用参加这次比赛). 描述 今天,他们在打一张叫DUSTII的地图,万恶的恐怖分子要炸掉藏在A区的SQC论坛服务器!我们SQC ...

  2. idea2019版与maven3.6.2版本不兼容引发的血案

    昨天遇到了点问题解决浪费了一些时间(导致更新内容较少)回顾下问题 项目出现Unable to import maven project: See logs for details 翻了好多博客 莫名的 ...

  3. 【Java 基础】谈谈集合.List

    目录 1. ArrayList 1.1 ArrayList的构造 1.2 add方法 1.3 remove方法 1.4 查询方法 1.5 一些其他常用方法 1.6 ArrayList小结 2. Vec ...

  4. composer依赖管理与laravel框架安装

    步骤有点多,生怕哪一天忘记,记录下来会好点 laravel安装有两种途径:1.直接在一些国内第三方网站,如:https://www.golaravel.com/download/ 下载压缩包来解压即可 ...

  5. 使用js json/xml互相转换

    <html> <head> <title>json与xml互转</title> <script type="text/javascrip ...

  6. python编程系列---tcp服务端的简单实现

    流程如下: """tcp服务端创建流程1. 创建服务端的tcp socket : server_socket 用于监听客户端的请求2. 绑定端口3. server_soc ...

  7. 百万年薪python之路 -- 小数据池和代码块

    1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...

  8. Centos7 安装redis 并新建springboot工程使用Redis 做session

    Redis 安装 就是解压运行,根据自己的爱好,放到文件夹中 tar -zxvf redis-5.0.4.tar.gz yum install gcc cd redis-5.0.4 make MALL ...

  9. [正确配置]win7 PL/SQL 连接Oralce 11g 64位

    PL/SQL 版本号:15.0.5.1710 32位 win7 64位系统 instantclient 12.1 32位,PL/SQL不支持64位 关键问题 1.Not logged on 2.没有c ...

  10. OptimalSolution(2)--二叉树问题(2)BST、BBT、BSBT

    一.判断二叉树是否为平衡二叉树(时间复杂度O(N)) 平衡二叉树就是:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过1. 解法:整个过程为二叉树的后序遍历.对任何一个节点node来说, ...