4117: Discover

 

 

#include<cstdio>
#include<iostream>
using namespace std;
int t;
int x,y;
int n,ans;
int abs(int a)
{
	if(a<0)
		return -a;
	return a;
}
int solve()
{
	if(n==x&&y!=-n)
	{
		return y+(n-1);
	}
	else
	{
		if(y==n)
		{
			return 2*n-1+n-x;
		}
		else
		{
			if(x==-n)
			{
				return 4*n-1+n-y;
			}
			else
			{
				if(-y==n)
				{
					return 6*n-1+x+n;
				}
			}
		}
	}
}
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>x>>y;
		n=max(abs(x),abs(y));
		ans=(2*n-1)*(2*n-1);
		ans+=solve();
		cout<<ans<<endl;
	}
	return 0;
}


 

“ssdp:discover”在SSDP(Simple Service Discovery Protocol)协议中具有重要作用。SSDP作为用于发现局域网里设备和服务的协议,是通用即插即用(UPnP)协议族的一部分,工作基于HTTPU(HTTP over UDP),使用简单的HTTP样式消息通信[^1][^2]。 “ssdp:discover”主要在设备查询消息中使用,是SSDP发现消息的一种标识。控制点(客户端)通过发送包含“ssdp:discover”的SSDP发现消息(即M - SEARCH消息)到SSDP多播地址(239.255.255.250端口1900),以此来查询网络中的服务或设备。例如设备查询消息格式例子中“MAN: \"ssdp:discover\"”,这里的“ssdp:discover”表明该消息是一个服务发现请求,用于触发网络中设备的响应,让设备返回其能提供的服务的具体描述信息,这些信息通常涵盖服务的类型、标识、位置等内容[^1][^2]。 ### 示例代码 ```python import socket # 创建UDP套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置套接字选项 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) # SSDP发现消息 ssdp_message = ( 'M-SEARCH * HTTP/1.1\r\n' 'HOST: 239.255.255.250:1900\r\n' 'MAN: "ssdp:discover"\r\n' 'MX: 5\r\n' 'ST: ssdp:all\r\n' 'User-Agent: LUO-YI-NIU\r\n\r\n' ) # 发送SSDP消息 sock.sendto(ssdp_message.encode(), ('239.255.255.250', 1900)) # 接收响应 while True: try: data, addr = sock.recvfrom(1024) print(f"Received from {addr}: {data.decode()}") except socket.timeout: break sock.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值