python Socket网络编程_socket.recv(1024)-程序员宅基地

技术标签: python  系统安全  web安全  网络安全  

网络调试助手https://pan.baidu.com/s/1Do-v8XMDaIYJsXRQok5RhQ 提取码:ya4g (便于测试)

        套接字(Socket)是计算机之间进行通信的一种约定。通过Socket,一台计算机可以接受其他计算机的数据,也可以向其他计算机发送数据。远程管理软件和黑客软件大多依赖于Socket来实现特定功能的,其包括两个部分:运行于服务器端称之为ServerSocket,运行于客户机端称之ClientSocket。

TCP

TCP是因特网中的传输层协议,使用三次握手协议建立连接

 

TCP_Client.py

import socket


def main():
	# 创建TCP套接字
	tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

	# 服务器地址
	sever_ip = input("请输入服务器ip:")
	sever_port = input("请输入服务器端口:")

	# 连接服务器(元组)
	tcp_client_socket.connect((sever_ip,int(sever_port)))

	# 输入发送的数据
	data = input("请输入要发送的数据:")

	# 发送数据
	tcp_client_socket.send(data.encode("utf-8"))

	#接收数据
	recv_data = tcp_client_socket.recv(1024)
	print("对方的回复:"recv_data.decode("utf-8"))

if __name__ == '__main__':
	main()

nc -lvp 8888 监听8888端口 

(一次完整对话)

在这里插入图片描述

 TCP_Sever.py 

 

import socket

def main():
    # 创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    # 绑定本地IP和端口
    tcp_server_socket.bind(("192.168.12.1",8888))

    # 被动 listen
    tcp_server_socket.listen(128)

    while True:
        # 等待客户端信息
        print("等待客户端连接")
        client_socket,client_addr = tcp_server_socket.accept()
        print("客户端为:",client_addr)

        #接收对方发送数据
        recv_data = client_socket.recv(1024)
        print("接收到信息为:",recv_data.decode("utf-8"))

        #发送数据到客户端
        client_socket.send("Yasso".encode("utf-8"))
        client_socket.close()

if __name__ == "__main__":
    main()

在这里插入图片描述

UDP

UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

 

UDP_Client_send.py 

import socket
#创建udp套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 目标ip和端口
target_addr = ('192.168.12.128',8888)

#获取数据
data = input("请输入要发送的数据:")

#发送数据
udp_socket.sendto(data.encode('utf-8'),target_addr)

udp_socket.close()

UDP_Client_receive.py 

import socket
#创建udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

local_addr=('192.168.12.128',8888) 
#绑定ip(必须本地)和端口
udp_socket.bind(local_addr)

#等待接受对方发送的数据
recv_data = udp_socket.recvfrom(1024) #表示本次接受的最大字节数1024

# 显示接受的数据
print(recv_data[0].decode('utf-8'))
udp_socket.close()

 liunx等待接受数据->win10发送数据->liunx成功接收数据

在这里插入图片描述

nc -ulp 8888 监听udp模式下的8888端口 

在这里插入图片描述

私密聊天室

# UDP应用-私密聊天室(极简)
import socket


def send(chat_ip,chat_port):
	udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
	"""发送消息"""
	address = (chat_ip,int(chat_port))
	print(address)
	data = input("请输入发送的消息:")
	udp_socket.sendto(data.encode("utf-8"),address)


def receive():
	"""接收消息"""
	udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
	# 绑定本地IP和端口
	udp_socket.bind(("192.168.12.1",8888))
	recv_data = udp_socket.recvfrom(1024)
	print(recv_data[0].decode('utf-8'))


def main():
	chat_ip = input("请输入您聊天对方IP地址:")
	chat_port = input("请输入您聊天对方端口:")

	# 循环调用
	while True:
		print("++++++欢迎进入私密聊天室++++++")
		print("0:发送消息")
		print("1:接收消息")
		print("2:退出聊天")
		function = input("请输入您要用的模块")

		if function == "0":
			send(chat_ip,chat_port)
		elif function == "1":
			receive()
		elif function == "2":
			break
		else:
			print("输入有误,请重新输入")



if __name__ == '__main__':
	main()

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Python_caoboqiao/article/details/124461654

智能推荐

CSAPP深入理解操作系统 课程实验 bomb 反向编译 汇编(3)_boompack 反编译-程序员宅基地

文章浏览阅读5.5k次,点赞8次,收藏29次。第四关: 首先也是栈开辟:然后由第三关以及前面对sscanf函数的分析可知,这里应该也是要输入两个数。参数1从-0xc(%ebp)加载,参数2从-0x10(%ebp)处加载。0x804a23e应该里面的内容也是sscanf的输入格式之类的。返回值要等于2,不然会引爆炸弹。接一下来一段说明输入的第一个参数的范围要在0-14之间接下来,赋初始_boompack 反编译

Java8新特性 - ZoneDateTime 了解_java zoneddatetime-程序员宅基地

文章浏览阅读1.6k次。1.地理知识 : 时区图2. ZoneDateTime 类ZoneDateTime : 是带时区的日期时间类。区别于 LocalDateTime 类,LocalDateTime 类是 默认时区的日期时间类,中国默认的 时区是 【东八区】。因此,当LocalDateTime 手动指定 时区后 就变成了ZoneDateTime。时区id 可以通过ZoneId类的API 直接获取。3. 相关的API 代码下面简单演示一下相关的操作package com.northcastle.K_Date_java zoneddatetime

研究生课题_fdsst-程序员宅基地

文章浏览阅读352次,点赞2次,收藏2次。FXGroup研究生课题_fdsst

CMake与Make最简单直接的区别_cmake与qcmake的区别-程序员宅基地

文章浏览阅读793次。原文:https://blog.csdn.net/weixin_42491857/article/details/80741060写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理..._cmake与qcmake的区别

Another industry person close to Foxit Wu Yu added-程序员宅基地

文章浏览阅读227次。Another industry person close to Foxit Wu Yu added that Foxit’s business with Google can kill two birds with one stone.Open source is a self-certification of its technical strength. For example, Microsoft spent 7.5 billion US dollars to acquire open sourc._another industry

AIX登录账号被锁_aix查看用户锁定情况-程序员宅基地

文章浏览阅读2k次。限制密码重试次数,超过限制次数后锁定用户本文PDF版下载http://xunzhaoxz.itpub.net/resource/40016/29789作者:xunzhao【转载时请以超链接形式标明文章出处和作者信息】链接:http://xunzhaoxz.itpub.net/post/40016/488626加强系统安全,其中一大要务就是保护好系_aix查看用户锁定情况

随便推点

Cadence 16.6基本操作技巧(一)-程序员宅基地

文章浏览阅读2.5w次,点赞23次,收藏198次。都是工作上碰到的需要学习的知识,比较实用。1、修改Pin脚网络set up --user preference EditorLogic--net logicOption处选择网络,然后find处选择Pins,之后点击要修改网络的Pin即可将原来的网络修改为所选择的网络。2、在使用测量工具的时候,...

收藏 | 90+深度学习开源数据集整理:包括目标检测、工业缺陷、图像分割等多个方向(附下载)...-程序员宅基地

文章浏览阅读7.2k次,点赞2次,收藏14次。来源:极市平台本文多干货,建议收藏本文整理汇总了90+深度学习各方向的开源数据集,包含了小目标检测、目标检测、工业缺陷检测、人脸识别、姿态估计、图像分割、图像识别等方向。附下载链接。小目标检测1. AI-TOD航空图像数据集数据集下载地址:http://m6z.cn/5MjlYkAI-TOD 在 28,036 张航拍图像中包含 8 个类别的 700,621 个对象实例..._bmp图片测试集下载

LVS-NAT 负载均衡 轮询模式 从安装部署到访问网站_lvs-nat访问不到网页-程序员宅基地

文章浏览阅读378次。文章目录话不多说!实验环境实验目的来吧!!展示!!!配置NFS文件服务器配置节点服务器配置 LVM验证实验关于负载均衡的原理,我I在上一篇写的很详细~~(大概吧)~~ 了链接在这:博客地址点我话不多说!实验环境使用 VM虚拟机进行演示共使用 六 台虚拟机:1、负载均衡调度器,同时作为进出口网关 CentOS7.62、三台 节点服务器 CentOS7.63、一台 NFS 文件服务器 CentOS7.64、一台 客户端 使用 Win10实验目的客户端20端访问服务器群集,验证轮询_lvs-nat访问不到网页

kylin安装以及遇见到的一些问题和解决方法_kylin 安装到虚拟机失败重启出现控制台-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏5次。环境:三台hadoop集群,hive,hbase,zookeeper三台机器内网互相通信,配置有一个外网ip,使用nginx端口映射kylin安装:安装部分参考文档:https://blog.csdn.net/seashouwang/article/details/77869773https://www.cnblogs.com/itboys/p/6322421.html1.从官..._kylin 安装到虚拟机失败重启出现控制台

优化你的 netfilter/iptables 网关_netfilter masquerade-程序员宅基地

文章浏览阅读1.1k次。netfilter/iptables 是Linux内核集成的 IP 数据包过滤系统,它由 netfilter 和 iptables 两个组件组成。其中 netfilter 是工作在内核空间,由许多Hook函数组成,根据“规则”控制数据包并做相应的处理,而 iptables 则是用户空间的一个工具,用于操作规则的(操作netfilter的Hook函数),但很多时候我们直接简称为iptables了。_netfilter masquerade

OpenStack Ussuri 版新特性: Nova功能分析_ussuri nova evacuate-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏3次。摘要:本文罗列了OpenStack Nova Ussuri版本的新增功能,并会对其中重要项进行详细分析。新增功能列表重大变化1. 支持在Nova cells间进行cold migrate和resize操作相关概念nova cell V2:为了降低数据库和消息队列的访问瓶颈引入了cell的概念。其中API Cell运行nova-api、nova-scheduler、nova-conductor服务,并包含nova_api(全局数据)和nova_cell0(调度失败的虚机数据).._ussuri nova evacuate

推荐文章

热门文章

相关标签