linux socket 发送 dns,socket之 udp用法 dns 多道 进程

1.udp协议

定义:udp是用户数据报协议,是osi参考模型中一种无连接的传输层协议,提供简单不可靠信息传送服务

用途:用于不要求可靠性,不要求分组顺序,每一次传输少量数据的传输,力求快

2.udp通讯流程

它与对讲机非常类似:只管发送不管对方是否接收到  甚至不关心对方在不在。

买传呼机

固定对讲频道

(省了listen与accept)

收信号

发信号

买对讲及

(省了connect)

指定发送频率

发信息

收信息

它与tcp的区别:由于udp是不可靠传输,不需要建立连接,不会粘包,单次数据包不能太大

注:udp的socket得 手动指定

#================================================================= 客户端

from socket import *

client = socket(AF_INET,SOCK_DGRAM)

client.sendto("%Y-%m-%d".encode("utf-8"),("127.0.0.1",1688))

data,addr = client.recvfrom(1472)

print(data)

# =================================================================服务器

from socket import *

import time

server = socket(AF_INET,SOCK_DGRAM)

server.bind(("127.0.0.1",1688))

while True:

data,addr = server.recvfrom(1472)

res = time.strftime(data.decode("utf-8"),time.localtime())

server.sendto(res.encode("utf-8"),addr

#模拟聊天

===================================================================服务器from socket import *server=socket(AF_INET,SOCK_DGRAM)

server.bind(("192.168.13.93",1688))

clients={}whileTrue:try:

data,addr= server.recvfrom(1472)if addr[0] not inclients:

clients[addr[0]] =addrtry:

print("%s说:%s" % (addr[0],data.decode("utf-8")))

except:

print("编码有问题啊 .....")

# 遍历所有客户端 转发消息给他们for k,v inclients.items():

server.sendto(data,v)

except Exceptionase:

# print(e)

pass

#=================================================================客户端1

from socket import *client=socket(AF_INET,SOCK_DGRAM)whileTrue:

# msg= input("msg:").strip()

client.sendto("client2".encode("utf-8"),("127.0.0.1",1688))

data,addr= client.recvfrom(1472)

print(data)

#=================================================================客户端2

from socket import *client=socket(AF_INET,SOCK_DGRAM)whileTrue:

# msg= input("msg:").strip()

client.sendto("client1".encode("utf-8"),("192.168.13.93",1688))

data,addr= client.recvfrom(1472)

print(data)

4.DNS服务器:

定义:是域名解析服务器,是cs结构中的server端,   本质是数据库,存储的是ip与域名的对应关系

用途:将域名转换为ip地址                要链接服务器,必须的知道ip

由来:由于单独的ip不方便记忆,所以我们把ip和域名绑定到一块

dns使用的是Udp协议, 因为传输的数据小,  但对速度要求高  一个dns服务器要服务很多计算机

5.多进程的概念

进程:指的是正在运行的程序,它来自于操作系统        没有操作系统就没有进程

操作系统:是一套软件,用于控制硬件,隐藏丑陋的硬件细节,然后将无序的硬件竞争变得有序

操作系统与普通软件的区别是操作系统受硬件保护,不能被用户修改,他是一个大型,长寿的程序:而普通软件你不用了可以自己写一个或换一个

多道技术:为了提高计算机的利用率,有了它可以同一时间处理多个任务

空间复用:把内存分割为不同区域,每个区域装入不同的程序

时间复用:当一个程序执行io操作时,可以切换另一个程序来执行,但是得保存切换前的状态 ,以便恢复执行。 一个进程占用cpu时间过长也会切换,或者说被操作系统夺走cpu的执行权限

注:并不是多道就一定提高了效率,eg如果多个任务都是纯计算,那么切换反而会降低效率只有遇到io操作时才能提高效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值