Linux常用命令4

虚拟环境

python虚拟环境:允许安装不同版本的套件

  • 创建:mkvirtualenv 虚拟环境名称 默认python版本2.7
    -进入:workon 虚拟环境名称
  • 查看所有虚拟环境名称:workon+回车
  • 删除:1)先退出虚拟环境 2)rmvirtualenv 虚拟环境名称
  • 退出:deactivate
  • 创建虚拟环境,指定python路径:mkvirtualenv -p /usr/bin/python3.6 XXX
  • 在虚拟环境中安装套件:pip install 套件名==版本

Linux命令(ping、ifconfig)

虚拟机联网方式:

  • NAT 虚拟机跟物理主机公用网络
  • 桥接 :虚拟机能够获取局域网的IP地址(同学之间互相访问)
  • ifconfig:查看IP地址
  • ping:检测某个主机是否建立连接

端口

  • 分类:知名端口、动态端口
    知名端口 0-1023 固定不变,用户也不能用
    21 FTP服务
    22 SSH服务
    80 web服务器
    动态端口 1024-65535 程序可以绑定
  • 端口查看 netstat
  • 查看所有:netstat -an
  • 搜索某一个端口:netstat -an | grep :22
  • 查看某个端口,是哪个程序使用:sudo lsof -i :22

网络传输方式

面向无连接

  • 两台计算机通信的时候,不需要建立连接(逻辑)就可以进行数据的收发,数据可能会丢失
  • 传输协议:UDP

面向有连接

  • 两台计算机通信的时候,需要先建立连接,再能通信
  • 传输协议:TCP

socket 简介

socket网络通信的基本单元,提供的方法可以实现数据的发送和接收
创建套接字

# 1.导入模块 socket
import  socket
# 2.创建套接字,使用IPV4 UDP方式
# socket.socket(协议类型,传输方式)
# 参数一:
# socket.AF_INET 使用IPv4
# socket.AF_INET 使用IPv6
# 参数二;
# socket.SOCK_DGRAM 使用UDP的传输方式(无连接)
# socket.SOCK_STREAM 使用TCP的传输方式(有链接)
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 3.数据的传递
# 4.关闭套接字
udp_socket.close()

udp网络程序-发送数据

思路:
1)导入模块
import socket
2)创建套接字

socket.AF_INET #IPv4
socket.SOCK_DGRAM #UDP
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

3)发送数据
udp_socket.sendto(数据,IP和端口)

  • 数据必须是二进制格式,字符串.encode()
  • IP和端口必须是元祖,(“IP地址”,端口号)
    4)关闭连接
    udp_socket.close()
    win系统需要开启网路调试助手
  • 设置协议方式UDP
  • 设置IP地址
  • 设置端口
  • 连接网络

udp网络程序-发送并接收数据

1)发送数据,同上
2)接收数据

  • recv_data = udp_socket.recvfrom(1024) 每次接收1024个字节
  • recv_data是一个元组
  • 1.第一个元素 收到的数据的二进制
  • 2.第二个元素 元组,发送方的IP和端口
  • 把接收的数据解码 二进制–》字符串 二进制数据.decode(‘gbk’)

udp绑定端口-发送端

核心方法:bind()

# 绑定端口
# udp_socket.bind(address)
# address是一个元组,元组的第一个元素是字符串类型的IP地址,第二个元素是整形的端口号
udp_socket.bind(('',8881))

绑定,必须绑定自己的地址,也可忽略

udp绑定端口-接收端

bind()

  • udp_socket.bind(’’,8888)
  • ip地址尽可能写为‘’,好处当计算机有多个网卡的时候,不同网卡的数据都能被接收

UDP广播

广播地址:xxx.xxx.xxx.255 或者255.255.255.255
思路:

  1. 导入模块
    import socket
  2. 创建套接字
    udp_socket = socket.socket(socket.AF_INET,socket.SOCKET_DGRAM)
  3. 设置广播权限
#PermissionError:[Error 13] Permission denied
#udp_socket.setsockopt(套接字,属性,属性值)
#socket.SOL_SOCKET 当前的套接字
#socket.SO_BROADCAST 广播属性
udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,true)
  1. 发送数据
udp_socket.sendto('哈哈'.encode(),('255.255.255.255',8080))
  1. 关闭套接字
udp_socket.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值