首页 > 编程语言 >python中socke套接字的应用

python中socke套接字的应用

时间:2022-12-08 09:44:47浏览次数:46  
标签:socket AF python sock 间通信 socke 接字 客户端

socket:
问题一:什么是socket
socket(简称 套接字 ) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程
间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的例如我们每天浏览网页、QQ 聊天、收发 email 等等

socket套接字:
  所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通
信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用
程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口


如何创建一个socket:
import socket
sock = socket.socket(Family, Type))

参数说明:
Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中
常用AF_INET
Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者SOCK_DGRAM(数据报套接字,主要用
于 UDP 协议)

一,基于socket 创建一个tcp的服务器
import socket
# 创建一个套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 创建一个tcp的服务器
sock.bind(("127.0.0.1",1919))

# 设置监听,访问的个数
sock.listen(20)

print("服务器已经启动了:.......")
# 等待客户端发起链接请求,accept 接收到的是一个元组,一个是链接的套接字,一个是链接的
# 对象
client_sock,addr = sock.accept()

print(f"客户端{addr}已经建立链接")

# 接收客户端请求信息.
result = client_sock.recv(1024 * 10)
print(f"客户端的请求信息{result.decode()}")


# 服务器返回数据给客户端.
client_sock.send("12334".encode())

# 断开链接
client_sock.close()

sock.close()

 

二,基于sockt创建一个tcp的客户端

""" 结合socket 实现一个tcp的客户端"""

import socket
# 创建一个套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 链接服务器
sock.connect(("127.0.0.1",1919))

data = input("请输入你需要传输的数据:")
# 给服务器发送请求的信息
sock.send(data.encode())

# 读取客户端返回的信息

result = sock.recv(1024 * 10)
print(f"server response :{result.decode()}")

  

 

 

标签:socket,AF,python,sock,间通信,socke,接字,客户端
From: https://www.cnblogs.com/manxingsir/p/16965233.html

相关文章

  • websocket vs stomp你了解吗?
    背景在一个项目中,有个消息中心的功能。后端同学说这次可以不用websocket,而用stomp吗?于是看了下stomp,发现stomp对后端好处更多,可是对前端来说差不多。对比1、websocket......
  • Centos 7 + python3 + paramiko + netmiko 安装
    转载自 (31条消息)Centos7下安装Python3并通过Pip安装Paramiko与Netmiko_筐瓢大师小吕的博客-CSDN博客             ......
  • 关于解决pip安装python第三方库超时的问题
    直接换源下载1.设置超时时间,安装txt文件内安装包pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple--default-timeout=1000-rpackages.txt2.指定源安装,推......
  • python requests.cookies.RequestsCookieJar()
    使用python的requests开发爬虫类程序时,经常需要将之前请求返回的set-cookie值,作为下一个请求的cookie发送。比如模拟登录之后的返回的sessionId,就需要作为后续请求的cookie......
  • 名师课堂|Python基础教程 2 变量与数据类型
    学习目标注释的分类及语法变量的作用定义变量认识数据类型一、注释的分类注释最大的作用,是能够增强程序的可读性在Python中,注释分为两类:单选注释和多行注释1.单行注释只能......
  • python中的函数进阶
    1.局部变量和全局变量在函数外定义的不可变数据类型,在函数里面是可读不可写在函数外定义的可变数据类型,在函数里面可读可写不可变类型传入函数,进行的操作不会影响到外面的......
  • python之路44 jQuery语法应用 与Bootstrap框架
    写的略粗糙咨询https://www.cnblogs.com/Dominic-Ji/p/10490669.html作业讲解页面简陋定时器:<inputtype="text"id="d1"><buttonid="startBtn">开始</button><bu......
  • 进入python的世界_day47_前端——JQ补充、bootstrap前端框架
    一、jQuery补充​ 说在最前面,如果想把JQ对象赋值给一个变量名,起名字依旧要讲究,建议名字前加$,这样别人一看就知道是JQ对象1.筛选器//1.属性选择器$('username')//......
  • 学习python-爬虫
    爬虫041.爬虫介绍python是做爬虫比较方便,很多爬虫的库。其次java、gohttp协议pc端、小程序、app模拟发送http请求,拿到返回数据然后解析出我们想要的数据,最后保存......
  • 5.python-列表字典混合练习
    疫情管理"""疫情信息管理系统显示菜单选择菜单1键录入疫情信息(地区、新增、现有)2键显示疫情信息3键删除疫情信息......