discoveryserver
SSDPDiscoveryService是什么可以禁用吗
SSDPDiscoveryService是什么可以禁⽤吗
这个服务现在⽤到是⾮常少的,⼩编建议⼤家改为⼿动使⽤,这样当我们需要使⽤它的时候也能使⽤它,如果你电脑发现这个服务对应的svchost.exe进程使⽤的CPU⾮常,可以关闭它,但是不建议直接永久禁⽤它启动,下⾯我们来详细了解SSDP Discovery Service。
1、SSDP Discovery Service对应的进程是svchost.exe。
主要⽤于局域⽹上UPnP(不了解这个东西的可以搜⼀下,百科有很详细的解释)设备的搜索。
2、针对于SSDPSRV不同⼈的意见:
随风⽽去:SSDP Discovery Service即:简易服务发现协议的发现服务。
可以禁⽤。
没关系的。
问天阁Sē彩:简介是SSDPSRV 这个是⼀个最新的协议软件但是⼀般⽤不上的,这个进程是⼀个⾮常少见的进程,基本是没⽤的
Intel2006:建议:这些平时⽤不到的服务设置为“⼿动”。
zryour:有⽤。
别禁⽤了
以上是关于SSDP Discovery Service 是什么东西可以禁⽤吗?相信不了解的⼈看了还是⼀知半解,但是你只要当你卡的时候把它对应的进程结束了就⾏了,别去禁⽤它。
ArcGIS Engine 如何操纵Server
文档编号PTM02_AE201211010016版本号V0.1 ArcGIS Engine 10.1 如何操纵ServerEsri中国信息技术有限公司2012年11月版权声明本文档版权为Esri中国信息技术有限公司所有。
未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播。
制定及修订记录版本完成日期编写/修订纪要编写者备注V0.1 2011.11.1 刘宇目录第一章使用ArcGIS Engine 管理ArcGIS Server (3)1.1原因 (3)1.2解决 (4)1.3AO操作 (9)1.4REST方式操作 (10)1.5小结 (18)第二章使用ArcGIS Engine 访问ArcGIS Server (19)2.1以前是如何访问的 (19)2.2IAGSServerConnection接口还能用吗? (20)第一章使用ArcGIS Engine 管理ArcGIS Server1.1 原因在10版本以及之前的版本中,有一些用户通过ArcGIS Engine来管理ArcGIS Server,比如发布服务,停止服务等,对服务的管理是通过DCOM方式的,而在10.1中ArcGIS 不支持DOCM方式的连接,。
如果你在代码中使用了Server库中的GISServerConnection或者GISClient库中的AGSServerConnection,在ArcGISServer 10.1环境下,这些代码必须移除,如下面的代码:如果强行执行,那么会有下面的错误:1.2 解决ArcGIS Server在10.1版本中提供了ADMIN API,只要我们通过http请求构造相应的参数就行,对于ArcGIS Server的连接,我们可以看下desktop是如何连接的:从这两个图中就可以看出,在选择连接Server的时候,选择角色,选择服务的类型(SDS和ArcGIS Server),在10版本以及之前的版本的时候跟这个有较大区别,连接ArcGIS 10.1 for Server的代码如下(注释已经写出):public IServerObjectAdmin ConnectAGS(string host, string username, string password){try{IPropertySet propertySet = new PropertySetClass();propertySet.SetProperty("url", host);propertySet.SetProperty("ConnectionMode",esriAGSConnectionMode.esriAGSConnectionModeAdmin);propertySet.SetProperty("ServerType", esriAGSServerType.esriAGSServerTypeDiscovery);propertySet.SetProperty("user", username);propertySet.SetProperty("password", password);propertySet.SetProperty("ALLOWINSECURETOKENURL", true); //设置为false会弹出一个警告对话框IAGSServerConnectionName3pConnectName = new AGSServerConnectionNameClass() as IAGSServerConnectionName3;//10.1新增接口pConnectName.ConnectionProperties = propertySet;IAGSServerConnectionAdmin pAGSAdmin = ((IName)pConnectName).Open() as IAGSServerConnectionAdmin;token = GenerateAGSToken_RESTAdmin(host, "arcgis", "arcgis");return pAGSAdmin.ServerObjectAdmin;}catch (Exception exc){Console.WriteLine("连接失败: {0}. Message: {1}", host, exc.Message);return null ;}}ConnectAGS("http://192.168.110.136:6080/arcgis/admin", "arcgis", "arcgis");当获得了IAGSServerConnectionAdmin 这个接口我们进而可以获取IServerObjectAdmin,IServerObjectAdmin接口,在帮助中看到了IDiscoveryServerObjectAdmin接口,该接口的方法和属性如下:我欣喜若狂,因为这些和ArcGIS Server的Admin几乎是对应的,实现该接口的类不能被实例化,必须通过其他对象获取。
Lotus认证详细介绍
Lotus认证详细介绍Lotus认证详细介绍Lotus认证详细介绍信息时代需要大量的高级it技术人才。
最近研究表明,认证继续为一个上升的业界标准。
销售商、集成商均认为拥有认证lotus专家,可大幅提升其技术实力,更好地为其客户服务,获得更多利益;企业客户拥有认证专家,可更好地管理资源,开发、维护应用,增加投资回报率;个人获得认证,则为个人技术水准提供了保证,跨入国际高级it专家行列,也是留学、移民、晋级的宝贵砝码。
lotusengineer随着notes用户的日益增多,政府及企事业单位对domino/notes工程师的需求呼声日益增高。
为了更好地服务于社会,莲花软件(中国)有限公司特别推出cle计划。
cle即certifiedlotusengineer-lotus中国初级认证工程师,也称notes上岗证。
通过授权教师的培训,通过考试认证的cle能够熟练应用notes,能够搭建基本的domino/notes网络,简单维护系统,更好地满足政府及企事业单位对domino/notes各种层次人才的需求。
lotusspecailicls国际认证的推出,有利于采用lotus软件的中小企事业单位的技术应用。
学员仅通过一门lotus专业课程的考试即可获得cls证书。
学员还可继续进行认证,以取得clp证书。
cls分二个方向,即cls管理(sa)及cls开发(ad)。
lotusprclp是全球公认的高级技术人才认证。
获得clp证书,您将成为domino/notes高级技术专家,对于lotusl等lotus产品知识的掌握及专业熟练程度的测量,认证提供了一个量化的方法。
它要求技术人员全面、熟练地掌握lotus产品专业知识,确切满足lotus应用开发管理的严格技术要求。
lotus提供四种clp认证,每种认证表明工程师在不同领域所具有的相应的技术水平。
完成认证需要参加全球统一的lotus认证课程考试,国内考试主要在prometric授权考试中心进行。
通过C#实现OPC-UA服务端(二)
通过C#实现OPC-UA服务端(⼆)前⾔通过我前⾯的⼀篇⽂件,我们已经能够搭建⼀个OPC-UA服务端了,并且也拥有了⼀些基础功能。
这⼀次咱们就来了解⼀下OPC-UA的服务注册与发现,如果对服务注册与发现这个概念不理解的朋友,可以先百度⼀下,由于近年来微服务架构的兴起,服务注册与发现已经成为⼀个很时髦的概念,它的主要功能可分为三点:1、服务注册;2、服务发现;3、⼼跳检测。
如果运⾏过OPC-UA源码的朋友们应该已经发现了,OPC-UA服务端启动之后,每隔⼀会就会输出⼀⾏错误提⽰信息,⼤致内容是"服务端注册失败,xxx毫秒之后重试",通过查看源码我们可以知道,这是因为OPC-UA服务端启动之后,会⾃动调⽤"opc.tcp://localhost:4840/"的RegisterServer2⽅法注册⾃⼰,如果注册失败,则会⽴即调⽤RegisterServer⽅法再次进⾏服务注册,⽽由于我们没有"opc.tcp://localhost:4840/"这个服务,所以每隔⼀会⼉就会提⽰服务注册失败。
现在我们就动⼿来搭建⼀个"opc.tcp://localhost:4840/"服务,在OPC-UA标准中,它叫Discovery Server。
⼀、服务配置Discovery Server的服务配置与普通的OPC-UA服务配置差不多,只需要注意⼏点:1、服务的类型ApplicationType是DiscoveryServer⽽不是Server;2、服务启动时application.Start()传⼊的实例化对象需要实现IDiscoveryServer接⼝。
配置代码如下:var config = new ApplicationConfiguration(){ApplicationName = "Axiu UA Discovery",ApplicationUri = Utils.Format(@"urn:{0}:AxiuUADiscovery", .Dns.GetHostName()),ApplicationType = ApplicationType.DiscoveryServer,ServerConfiguration = new ServerConfiguration(){BaseAddresses = { "opc.tcp://localhost:4840/" },MinRequestThreadCount = 5,MaxRequestThreadCount = 100,MaxQueuedRequestCount = 200},DiscoveryServerConfiguration = new DiscoveryServerConfiguration(){BaseAddresses = { "opc.tcp://localhost:4840/" },ServerNames = { "OpcuaDiscovery" }},SecurityConfiguration = new SecurityConfiguration{ApplicationCertificate = new CertificateIdentifier { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault", SubjectName = Utils.Format(@"CN={0}, DC={1}", "AxiuOpcua", TrustedIssuerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Certificate Authorities" },TrustedPeerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications" },RejectedCertificateStore = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates" },AutoAcceptUntrustedCertificates = true,AddAppCertToTrustedStore = true},TransportConfigurations = new TransportConfigurationCollection(),TransportQuotas = new TransportQuotas { OperationTimeout = 15000 },ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 },TraceConfiguration = new TraceConfiguration()};config.Validate(ApplicationType.DiscoveryServer).GetAwaiter().GetResult();if (config.SecurityConfiguration.AutoAcceptUntrustedCertificates){config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); };}var application = new ApplicationInstance{ApplicationName = "Axiu UA Discovery",ApplicationType = ApplicationType.DiscoveryServer,ApplicationConfiguration = config};//application.CheckApplicationInstanceCertificate(false, 2048).GetAwaiter().GetResult();bool certOk = application.CheckApplicationInstanceCertificate(false, 0).Result;if (!certOk){Console.WriteLine("证书验证失败!");}var server = new DiscoveryServer();// start the server.application.Start(server).Wait();⼆、实现IDiscoveryServer接⼝下⾯我们就来看看前⾯Discovery服务启动时传⼊的实例化对象与普通服务启动时传⼊的对象有什么不⼀样,在我们启动⼀个普通OPC-UA服务时,我们可以直接使⽤StandardServer的对象,程序不会报错,只不过是没有任何节点和内容⽽已,⽽现在,如果我们直接使⽤DiscoveryServerBase类的对象,启动Discovery服务时会报错。
FactoryTalk Linx Gateway软件证书过期解决方法
FactoryTalk Linx Gateway软件证书过期解决方法➢软件环境FactoryTalk Linx Gateway V6.20➢问题:1、打开FactoryTalk Linx Gateway Configuration—>Certificate Management配置选项,发现Incoming Certificate选项卡—>Trusted Certificate中的UA LocalDiscovery Server证书有效期超期,如图1所示,从而造成OPC UA Client工具无法自动发现FactoryTalk Linx Gateway OPC UA服务器,如图2所示。
图1.证书超期现象图2.OPC UA Client工具无法发现OPC UA Server2、证书不小心被Remove掉了,如何重新生成证书➢解决办法:1、证书被移除之后,重新生成证书1)打开超期证书UA Local Discovery Server的文件夹,路径为:C:\ProgramData\Rockwell\FactoryTalk Linx Gateway\PKI\trust\,删除该路径下的“ualdscert.der”证书文件。
2)打开计算机—>管理—>服务和应用程序—>服务,找到“OPC UA Local Discovery Server”服务,重启该服务后自动生成新的证书即可。
2、对于“ualdscert.der”证书超期问题造成的OPC UA Client无法自动发现OPC服务器,但并不影响FactoryTalk Linx Gateway OPC服务器使用,可以手动去“UA Server Endpoints”选项中去复制OPC服务器的URL地址填写到OPC UA Client工具的服务器地址栏即可。
说明:“ualdscert.der”证书属于OPC Foundation基金会组织颁发的,有效期一般为3年,重新申请该证书需要从OPC Foundation基金会组织官网申请。
Presto分布式SQL查询引擎及原理分析
Presto 分布式SQL查询引擎及原理分析Presto是由 Facebook 推出的一个基于Java开发的开源分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。
Presto本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。
为何是SQL查询引擎?而不是数据库和Oracle、MySQL、Hive等数据库相比,他们都具有存储数据和计算分析的能力。
如MySQL具有 InnoDB存储引擎和有SQL的执行能力;如Hive 有多种数据类型、内外表(且这么叫)的管理能力,且能利用MR、TEZ执行HQL。
而Presto并不直接管理数据,他只有计算的能力。
Presto 支持的数据源常见的RDBMS都支持,如:Oracle、MySQL、PG等;NoSQL:MongoDB、Redis、ElasticSearch 等;大数据:Hive,Hbase(第三方)Kudu、Kafka 等;Presto 支持从多中数据源获取数据来进行运算分析,一条SQL查询可以将多个数据源的数据进行合并分析。
如如下SQL: a可以来源于MySQL,b可以来源于Hive。
select a.*,b.* from a join b on(a.id = b.id)Presto 优势1.多数据源、混合计算支持:支持众多常见的数据源,并且可以进行混合计算分析;2.大数据:完全的内存计算,支持的数据量完全取决于集群内存大小。
他不像SparkSQL可以配置把溢出的数据持久化到磁盘,Presto是完完全全的内存计算;3.高性能:低延迟高并发的内存计算引擎,相比Hive(无论MR、Tez、Spark执行引擎)、Impala 执行效率要高很多。
根据Facebook和京东的测试报告,至少提升10倍以上;4.支持ANSI SQL:这点不像Hive、SparkSQL都是以HQL为基础(方言),Presto是标准的SQL。
用户可以使用标准SQL进行数据查询和分析计算;5.扩展性:有众多 SPI 扩展点支持,开发人员可编写UDF、UDTF。
Prosys OPC UA Simulation Server 用户手册说明书
Version: 2.2.2Table of ContentsInstalling the Application (2)Uninstalling the Application (2)About the Server (3)Objects (3)Types (3)Views (3)User Interface (4)Application Menu (4)Status (4)Endpoints (5)Registering to a Local Discovery Server (5)Users (6)Sessions (7)Certificates (8)Connection Log (9)Address Space (10)Simulation (11)Debug Log (12)Reg/Res Log (13)File locations (14)OPC UA Simulation Server is an OPC UA server application, which provides simulated data. You can use it in place of OPC UA servers that provide online production data, for example, to test connections from different OPC UA client applications or to help you with your OPC UA system or application development.Installing the ApplicationThe installation includes a complete “embedded” Java Runtime Environment (JRE). This ensures that you don’t need to install Java in your computer, although the application is running in a Java environment, and you don’t need to worry about the Java updates. The embedded Java is only used for this application.The application install packages are available from upon request. You should get the correct package, depending on your target environment.On Windows, run the installer executable and follow the instructions. By default, the application is installed with normal user privileges under your home directory. If you want to install it to, for ex-ample, Program Files, you need to run the installer as user which has administrator priviledges.On OS X, you can just install it normally from the dmg-package. Just note that the application is not signed, so you need to accept it at the first startup. Since OSX 10.8 (Mountain Lion), this requires that you open the application using the right-click menu - Open. You can then accept the applica-tion to be run, although it is not signed. After the first startup, you can run it normally from the Launch Pad as well.1On Debian-based Linux (such as Ubuntu), usesudo dpkg -i prosys-opc-ua-simulation-server-x.x.x-x.debOn RPM-based Linux (such as Fedora), use usesudo rpm -i prosys-opc-ua-simulation-server-x.x.x-x.x86_64.rpm(If the rpm install fails with "error: failed dependencies" then you are most likely running a Debian-based Linux distribution.)Uninstalling the ApplicationOn Windows the application can be uninstalled through the Control Panel, or with the uninstaller (in the installation folder). Remember to stop the application before uninstalling (some files cannot be removed while the application is running and must be removed manually if uninstalling is done while the application is running).On OS X you can just remove the application from the Applications folder.On Debian-based Linux usesudo dpkg -r prosys-opc-ua-simulation-serverOn RPM-based Linux usesudo rpm -e prosys-opc-ua-simulation-server1 See /Install-Software-from-Unsigned-Developers-on-a-Mac for more information about the Apple Gatekeeper options.About the ServerThe Simulation Server is an OPC UA server that contains simulation signals for demonstration and testing purposes.As most OPC UA servers, the address space of the Simulation Server has three main folders: Ob-jects, Types and Views.Objects include instances of OPC UA nodes, defined in Types folder. Views can include subgroups of OPC UA address spaceThe address space can be explored with the Address Space view. It is also available for all client applications, such as Prosys OPC UA Java Client.See the Address Space part for more about the address space and how to browse it in the server. ObjectsThe Simulation Server defines the following objects:∙Server object is a standard object that provides the status and capability information about the server∙Simulation folder contains all simulation signals defined in the Simulation page∙MyObjects contains a sample object, MyDevice that simulates a simple device with 4 com-ponentso MySwitch is a simple switch variable (DataType=Boolean) that can be turned on and offo MyLevel is a variable (DataType=Double) for simulated level measuremento MyLevelAlarm is an alarm object corresponding to MyLevel. New events are sent from the server when the value of MyLevel exceeds the alarm limits defined in thealarm object.o MyMethod is a sample method that can be called from the client applications ∙MyBigNodeManager represents an object including a large number of data items∙StaticData object includes variables of various data types that change only when they are written toTypesThe OPC UA servers provide complete type information for the objects also in the address space. These can be found from the Types folder. The Simulation Server includes the following types: ∙ObjectTypes includes type definitions for all the objects in the server address space∙VariableTypes includes type definitions for all the variables in the server address space ∙DataTypes defines all the data types that are used in the server address space∙ReferenceTypes defines all the reference types that appear between nodes∙EventTypes define all the events that appear in server address spaceViewsThe Simulation Server does not define any Views.User InterfaceThe user interface of the Simulation Server consists of several views which are organized into tabbed pages.Application MenuThe Application Menu has just a couple of functions, you can shut down the server with File->Shutdown (or you can just close the window). Help->About lists information about the application (e.g. version numbers).StatusThe status page (Figure 1) displays short information about the current server status. If everything is ok, the status displays “Running”. The view also displays the current and starting time of the server. If remote connections are used, you should ensure that the computers are running with synchronized clocks. Especially the secure connections will not work if the clocks are too much out of sync. The Server Status and these times are also available for client application from the Server object.The Connection Addresses show which addresses (URLs) the client applications can use to con-nect to the server. Note that the Simulation Server supports both opc.tcp and https protocols. Most client applications only support opc.tcp, since https was defined recently for OPC UA 1.02. The Simulation Server does not support the soap protocol, which is also an alternative for some (mostly .NET based) OPC UA applications. You can define the available addresses in the Endpoints page. Figure 1: The Status tab displays some basic info about the serverEndpointsThe Endpoints page (Figure 2) allows you to configure all endpoint related settings and view all endpoints that the server has. By clicking “Show all endpoints” button, you see a pop-up window, which displays all the currently defined endpoints. You can edit the settings and save them by click ing “Apply”. The settings are applied the next time the application is started.Figure 2: The Endpoints page allows you to configure the endpoints of the serverRegistering to a Local Discovery ServerThe endpoints page (Figure 2) also has controls for registering the server to a Local Discovery Server. Please see the OPC Unified Architecture specification Part 12 for more information about Local Discovery Server. The view allows enabling/disabling the registration and changing the con-nection address for the Local Discovery Server. Please note that the registration requires a secure connection therefore the discovery server needs to trust Simulation Server’s certificate.UsersThe Users page (Figure 3) displays user authentication settings. OPC UA has multiple options for authentication. Currently only Anonymous and Username/Password configurations are supported. (All user certificates and tokes are actually accepted.). Note! that the changes in User Authentica-tion Methods apply only after restarting the server.You can use the user list to define user names and passwords that are allowed access to the serv-er. Currently all users get equal access rights to the server.Figure 3: Users pageSessionsThe Sessions page (Figure 4) displays the current sessions opened by the client application. The Session list on the left shows the session names and the detail view on the right displays available information about the selected session.Figure 4: Session tab displays all current Sessions in the serverCertificatesOPC UA applications use application instance certificates (not to be confused with user certificates) to authenticate the applications that are allowed to make secure connections (for unsecure con-nections, the certificates are not used).The Certificates page (Figure 5) allows you to define which application certificates you trust. When a new client application connects, its certificate will be added to the certificate list as “Rejected”. This is done by right-clicking the Certificate in the left list and selecting Trust from the menu. You can use the same to later reject a certificate that has been trusted previously.If your operating system has a default application for displaying certificates, you can use that by clicking “Open Certificates in OS viewer”. The certificates are stored in a Certificate Store (PKI folder) in the application settings (See File locations at the end of the manual).Figure 5: Certificates tab allows you to define which certificates you trust.Connection LogThe Connection Log page (Figure 6) displays a history of client connections. The log is stored in an internal database, so it will also show past connections.Figure 6: Connection Log tab displays the connection historyAddress SpaceThe address space of a server includes the data and types that are available for client applications. The address space consists of nodes, which can be objects, variables, various types or views. The nodes are connected to each other with references. The hierarchical references (such as Organiz-es, HasComponent, HasProperty, etc.) are used to compose the tree-structure, which is typically used when displaying the address space. In addition, there can be various non-hierarchical refer-ences (such as HasTypeDefinition, HasCondition, etc.).The Address Space page (Figure 7) can be used to explore the Address Space of the server. You may be familiar with a similar view in some OPC UA Client applications (such as Prosys OPC UA Client or UaExpert). The left part shows the Nodes in a tree view and the right-hand side shows the Attributes and References of the selected node.Figure 7: Address Space of the server. The attributes and references of the selected node are displayed on the right.SimulationThe Simulation page (figure 8) enables configuring custom signals with various simulation wave-forms.“Run Simulation” is used to enable/disable simulation. Interval defines how often the signals are updated. Simulation Time shows the timestamp corresponding to the last update. Simulation can be run in the current time only.The defined signals are displayed on the left. The parameters of the selected signal are configured with the editor on the right-hand side. The parameters depend on the type of the signal.You can add and remove signals using the “+” and “-“-buttons below the signal list. The signal names must be unique. The name is also used to define the NodeId, BrowseName and Display-Name of the signal.The graph on the bottom of the page can be used to visualize the selected signals (the ones that have their Visualize-checkbox checked in the list).Figure 8: Simulation viewExpression signals can be defined with a custom mathematical expression. The expression may also refer to other signals, which are defined with the Inputs parameter. Expression signals cannot be used as inputs for other expressions.Debug LogThe Debug Log page displays logging from the application’s internal behavior. This can be used for examining the application behavior in detail, e.g. if the application is unable to start the server. Figure 9: Debug Log viewReg/Res LogThe Ref/Res Log page can be used to record every request and response to the server (except opening and closing of the secure channel). This functionality is by default off, check the Active checkbox in order to start recording. Note that the recording is kept in memory until cleared by pressing Clear button or shutting down the application, therefore if kept on for very long time, it is possible to run out of memory.Figure 10: Request-Response Log viewFile locationsThe application saves its settings to a folder in path “(user.home)/.prosys/SimulationServer”. The (user.home) is the location of the current user’s home folder. If you want to reset to default se t-tings, just delete the settings file in the folder. Settings are saved automatically when the applica-tion closes. The certificates used in OPC UA communication are saved to PKI –subfolder in the same location.。
IdentityServer4接口说明
IdentityServer4接⼝说明Discovery定义了⼀个服务发现的规范,它定义了⼀个api( /.well-known/openid-configuration ),这个api返回⼀个json数据结构,其中包含了⼀些OIDC中提供的服务以及其⽀持情况的描述信息,这样可以使得oidc服务的RP可以不再硬编码OIDC服务接⼝信息。
这个api返回的⽰例信息如下(这⾥⾯只是⼀部分)。
{//发⾏⽹址,也就是说我们的权限验证站点。
"issuer": "https://localhost:44330",//发⾏⽹址,也就是说我们的权限验证站点。
"jwks_uri": "https://localhost:44330/.well-known/openid-configuration/jwks",//授权服务器的授权端点的URL。
"authorization_endpoint": "https://localhost:44330/connect/authorize",//获取token的⽹址"token_endpoint": "https://localhost:44330/connect/token",//根据token获取⽤户信息"userinfo_endpoint": "https://localhost:44330/connect/userinfo",//登录注销。
"end_session_endpoint": "https://localhost:44330/connect/endsession",//客户端对check_session_iframe执⾏监视,可以获取⽤户的登出状态。
Android 蓝牙各种UUID
android 蓝牙各种UUIDUUID是“Universally Unique Identifier”的简称,通用唯一识别码的意思。
对于蓝牙设备,每个服务都有通用、独立、唯一的UUID与之对应。
也就是说,在同一时间、同一地点,不可能有两个相同的UUID标识的不同服务。
在Android手机开发中不必过多考虑这点在这一点,因为几乎没有哪个手机会同时装两块蓝牙芯片。
下面是蓝牙各种UUIDServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'PublicBrowseGroupServiceClass_UUID = '{00001002-0000-1000-8000-00805F9B34FB}' #蓝牙串口服务SerialPortServiceClass_UUID = '{00001101-0000-1000-8000-00805F9B34FB}' LANAccessUsingPPPServiceClass_UUID = '{00001102-0000-1000-8000-00805F9B34FB}'#拨号网络服务DialupNetworkingServiceClass_UUID = '{00001103-0000-1000-8000-00805F9B34FB}'#信息同步服务IrMCSyncServiceClass_UUID = '{00001104-0000-1000-8000-00805F9B34FB}'SDP_OBEXObjectPushServiceClass_UUID = '{00001105-0000-1000-8000-00805F9B34FB}' #文件传输服务OBEXFileTransferServiceClass_UUID = '{00001106-0000-1000-8000-00805F9B34FB}' IrMCSyncCommandServiceClass_UUID = '{00001107-0000-1000-8000-00805F9B34FB}' SDP_HeadsetServiceClass_UUID = '{00001108-0000-1000-8000-00805F9B34FB}' CordlessTelephonyServiceClass_UUID = '{00001109-0000-1000-8000-00805F9B34FB}' SDP_AudioSourceServiceClass_UUID = '{0000110A-0000-1000-8000-00805F9B34FB}' SDP_AudioSinkServiceClass_UUID = '{0000110B-0000-1000-8000-00805F9B34FB}'SDP_AVRemoteControlTargetServiceClass_UUID = '{0000110C-0000-1000-8000-00805F9B34FB}'SDP_AdvancedAudioDistributionServiceClass_UUID = '{0000110D-0000-1000-8000-00805F9B34FB}'SDP_AVRemoteControlServiceClass_UUID = '{0000110E-0000-1000-8000-00805F9B34FB}' VideoConferencingServiceClass_UUID = '{0000110F-0000-1000-8000-00805F9B34FB}' IntercomServiceClass_UUID = '{00001110-0000-1000-8000-00805F9B34FB}'#蓝牙传真服务FaxServiceClass_UUID = '{00001111-0000-1000-8000-00805F9B34FB}'HeadsetAudioGatewayServiceClass_UUID = '{00001112-0000-1000-8000-00805F9B34FB}' WAPServiceClass_UUID = '{00001113-0000-1000-8000-00805F9B34FB}' WAPClientServiceClass_UUID = '{00001114-0000-1000-8000-00805F9B34FB}'#个人局域网服务PANUServiceClass_UUID = '{00001115-0000-1000-8000-00805F9B34FB}'#个人局域网服务NAPServiceClass_UUID = '{00001116-0000-1000-8000-00805F9B34FB}'#个人局域网服务GNServiceClass_UUID = '{00001117-0000-1000-8000-00805F9B34FB}'DirectPrintingServiceClass_UUID = '{00001118-0000-1000-8000-00805F9B34FB}' ReferencePrintingServiceClass_UUID = '{00001119-0000-1000-8000-00805F9B34FB}' ImagingServiceClass_UUID = '{0000111A-0000-1000-8000-00805F9B34FB}' ImagingResponderServiceClass_UUID = '{0000111B-0000-1000-8000-00805F9B34FB}' ImagingAutomaticArchiveServiceClass_UUID = '{0000111C-0000-1000-8000-00805F9B34FB}'ImagingReferenceObjectsServiceClass_UUID = '{0000111D-0000-1000-8000-00805F9B34FB}'SDP_HandsfreeServiceClass_UUID = '{0000111E-0000-1000-8000-00805F9B34FB}' HandsfreeAudioGatewayServiceClass_UUID = '{0000111F-0000-1000-8000-00805F9B34FB}' DirectPrintingReferenceObjectsServiceClass_UUID = '{00001120-0000-1000-8000-00805F9B34FB}'ReflectedUIServiceClass_UUID = '{00001121-0000-1000-8000-00805F9B34FB}' BasicPringingServiceClass_UUID = '{00001122-0000-1000-8000-00805F9B34FB}' PrintingStatusServiceClass_UUID = '{00001123-0000-1000-8000-00805F9B34FB}'#人机输入服务HumanInterfaceDeviceServiceClass_UUID = '{00001124-0000-1000-8000-00805F9B34FB}'HardcopyCableReplacementServiceClass_UUID = '{00001125-0000-1000-8000-00805F9B34FB}'#蓝牙打印服务HCRPrintServiceClass_UUID = '{00001126-0000-1000-8000-00805F9B34FB}'HCRScanServiceClass_UUID = '{00001127-0000-1000-8000-00805F9B34FB}' CommonISDNAccessServiceClass_UUID = '{00001128-0000-1000-8000-00805F9B34FB}' VideoConferencingGWServiceClass_UUID = '{00001129-0000-1000-8000-00805F9B34FB}' UDIMTServiceClass_UUID = '{0000112A-0000-1000-8000-00805F9B34FB}' UDITAServiceClass_UUID = '{0000112B-0000-1000-8000-00805F9B34FB}' AudioVideoServiceClass_UUID = '{0000112C-0000-1000-8000-00805F9B34FB}'SIMAccessServiceClass_UUID = '{0000112D-0000-1000-8000-00805F9B34FB}' PnPInformationServiceClass_UUID = '{00001200-0000-1000-8000-00805F9B34FB}' GenericNetworkingServiceClass_UUID = '{00001201-0000-1000-8000-00805F9B34FB}' GenericFileTransferServiceClass_UUID = '{00001202-0000-1000-8000-00805F9B34FB}' GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}' GenericTelephonyServiceClass_UUID = '{00001204-0000-1000-8000-00805F9B34FB}'。
PRESTO安装部署和参数说明(一)
PRESTO安装部署和参数说明(⼀)PRESTO部署和参数说明(⼀)⼀,概要在部署和使⽤presto的过程中,在此记录⼀下部署记录和使⽤记录以及需要注意的事项。
本⼈使⽤的presto版本是0.214,3台redhat虚拟机。
使⽤背景:客户需要定期查询⼤批量的数据,最后选择了sqoop⼯具定期导⼊hive,并且定期删除定期更新,因为没有找到是个实时增量导⼊的⼯具,批量执⾏mapreduce任务,然后使⽤分布式查询引擎presto查询数据。
⼆,安装部署在官⽹下载最新的安装包和客户端包:我们有三台测试机器,测试机器的版本类型为:LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchDistributor ID: RedHatEnterpriseServerDescription: Red Hat Enterprise Linux Server release 6.7 (Santiago)Release: 6.7Codename: Santiago我们要部署3个worker和⼀个Coordinator(附带⼀个Discovery Server节点)节点,并且这个master节点和⼀个worker节点部署同⼀台机器上。
第⼀步:下载完成之后,解压压缩包tar -zxvf presto-server-0.214.tar.gz第⼆步:解压之后,在⽬录presto-server-0.214中创建etc⽂件夹。
进去etc⽂件夹,建⽴配置⽂件,我这⾥建⽴配置⽂件如下config.properties: presto服务配置node.properties:每个节点特定配置jvm.properties:java虚拟机的命令⾏选项log.properties:输出的⽇志级别catalog⽬录:每个连着者配置咱们⼀个⼀个的讲解:config.properties如果是Coordinator节点:注意 是指Coordinator节点的域名或者IPcoordinator=truenode-scheduler.include-coordinator=truehttp-server.http.port=8080query.max-memory=10GBquery.max-memory-per-node=3GBquery.max-total-memory-per-node=3GBdiscovery-server.enabled=truediscovery.uri=:8080如果是worker节点:coordinator=falsehttp-server.http.port=8080query.max-memory=10GBquery.max-memory-per-node=3GBquery.max-total-memory-per-node=3GBdiscovery.uri=:8080参数解释:coordinator:是否运⾏该实例为coordinator(接受client的查询和管理查询执⾏)。
第42章发现(discovery)-IdentityServer4中文文档(v1.0.0)
foo ;bar" }); });
当您添加以~开头的自定义值时,它将扩展到IdentityServer基址以下的绝对路径,例如:
options.Discovery.CustomEntries.Add("my_custom_endpoint", "~/custom");
如果系统新添加了一个apiresourceapp新功能上线后登陆的用户访问api没有问题因为新获取的accesstoken的scope中包含了新的apiscope
第 42章发现( discovery) -IdentityServer4中文文档( v1.0.0)
默认情况下,所有信息都包含在发现文档中,但通过使用配置选项,您可以隐藏各个部分,例如:
42.1扩 展 发 现
您可以向发现文档添加自定义条目,例如:
services.AddIdentityServer(options => {
options.Discovery.CustomEntries.Add("my_setting", "foo"); options.Discovery.CustomEntries.Add("my_complex_setting",
如果要完全控制发现(和jwks)文档的呈现,可以实现`IDiscoveryResponseGenerator 接口(或从我们的默认实现派生)。
services.AddIdentityServer(options => {
options.Discovery.ShowIdentityScopes = false; options.Discovery.ShowApiScopes = false; options.Discovery.ShowClaims = false; options.Discovery.ShowExtensionGrantTypes = false; });
DiscoveryStudio3.1对硬件和操作系统的要求
Discovery Studio 3.1对硬件及操作系统的要求
Discovery Studio软件可以通过“客户端(Client)- 服务器(Server)”模式使用,客户端与服务器端可以安装在同一个机器上,也可以安装在不同的机器(和操作系统)上。
Server服务端(同时支持Windows和Linux平台,同时支持32bit和64bit的操作系统)
•客户端/服务器的操作系统
•客户端/服务器的处理器和内存最低配置
−处理器:Intel兼容,2 GHz (x86 or x86_64的构架都支持)
−客户端内存:至少2 GB
−服务器端内存:至少2 GB
•硬盘容量
−基本安装(不包括BLAST数据库和MODELER数据库)
−附加组件
显卡要求
支持的显卡驱动:
作业排队系统:如果需要将Discovery Studio安装在grid集群机上,Discovery Studio支持如下作业调度软件:SGE 6.1, PBS Pro 9.2, Platform LSF 7.00 Update 3.。
设置UPNP server
设置UPNP共享文件
1. 在操作系统中打开UPnP功能:
如果你使用的是XP SP2系统,则首先进入:控制面板->添加或删除程序->添加/删除windows组件中,在“网络服务”中勾选“UPnP用户界面”。
确定后,系统会自动安装相应的组件,可能会提示你插入安装光盘,总之按照提示操作完成即可;
接着打开Windows自带的防火墙,在“例外”选项卡中勾选“UPnP框架”。
2. 在windows中打开相应的UPnP服务:
进入“控制面板->管理工具->服务”,找到SSDP Discovery Service和
Universal Plug and Play Device Host两项服务。
右击相应的服务项,选择属性,启动这两项服务。
做完以上工作后,如果操作正确,我们就可以在“网络连接”中看到多了一项网关,这表明添加UPnP已经成功;
3. 安装fuppes-SVN-578-win32-setup.exe软件,在桌面设置快捷方式Fuppes
4. 点击打开网上邻居(双击左键),在界面左侧单击显示联网的UPNP设备的图
标,看到,直接双击进入页面设置
1..点击configuration选项框
在shared objects 添加共享文件,输入文件路径即可
2.点击左侧options选项框
点击update database,更新数据库。
共享文件添加成功!。
discovery 安装使用说明
Discovery安装建议使用WINDOWS XP Professional版系统的计算机作为Project服务器使用,WINXP系统不能正常访问WINDOWS 2000系统的Project服务器。
1.先安装完,Install.exe,(本例图片将Discovery默认安装到C:)如图建议同时安装Utilities下的(Prizm Chart Utility、SeisVision Seg-y T race Viewer)提示:Geographix Flex Services是网络版的服务器协议服务程序,安装中需要网络版的liscenc文件。
如果需要安装landmark Connect连接模块,需要先安装Oracle8以上版本的数据库软件(研究院网站有下载)2.控制面板\系统高级\环境变量\系统变量下新建变量名GGRAPHXB_LICENSE_FILE变量值C:\Program Files\GeoGraphix\Security\GGXLIC.DAT3.将license文件夹里面的文件复制到安装后的SECURITY文件夹里面的ggxlic.dat,ggxlic.dat.01,ggxlic.dat.02,GxSec32.dll,GxSecWrp.dll等文件拷贝到C:/program files/GeoGraphix/Security。
4.打数据库支持汉字的补丁拷贝GXDB.DB(该文件放在相关软件目录下)到C:\Documents and Settings\All Users\Application Data\GeoGraphix\Data\Templates\Project目录覆盖原有GXDB.DB文件。
1.68MB5.打开防火墙端口由于WINDOWS XP系统默认防火墙是打开的,会对Discovery相应的端口屏蔽掉,造成在Project Explore看不到服务器工区,需要对windows防火墙作一下设置。
Presto架构及原理
Presto架构及原理Presto 是 Facebook 推出的⼀个基于Java开发的⼤数据分布式 SQL 查询引擎,可对从数 G 到数 P 的⼤数据进⾏交互式的查询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 Hive 的 10 倍以上。
Presto 可以查询包括 Hive、Cassandra 甚⾄是⼀些商业的数据存储产品,单个 Presto 查询可合并来⾃多个数据源的数据进⾏统⼀分析。
Presto 的⽬标是在可期望的响应时间内返回查询结果,Facebook 在内部多个数据存储中使⽤ Presto 交互式查询,包括 300PB 的数据仓库,超过 1000 个 Facebook 员⼯每天在使⽤ Presto 运⾏超过 3 万个查询,每天扫描超过 1PB 的数据。
⽬录:presto架构presto低延迟原理presto存储插件presto执⾏过程presto引擎对⽐Presto架构Presto查询引擎是⼀个Master-Slave的架构,由下⾯三部分组成:1. ⼀个Coordinator节点2. ⼀个Discovery Server节点3. 多个Worker节点Coordinator:负责解析SQL语句,⽣成执⾏计划,分发执⾏任务给Worker节点执⾏Discovery Server:通常内嵌于Coordinator节点中Worker节点:负责实际执⾏查询任务,负责与HDFS交互读取数据Worker节点启动后向Discovery Server服务注册,Coordinator从Discovery Server获得可以正常⼯作的Worker节点。
如果配置了Hive Connector,需要配置⼀个Hive MetaStore 服务为Presto提供Hive元信息更形象架构图如下:Presto低延迟原理完全基于内存的并⾏计算流⽔线式计算作业本地化计算动态编译执⾏计划GC控制Presto存储插件Presto设计了⼀个简单的数据存储的抽象层,来满⾜在不同数据存储系统之上都可以使⽤SQL进⾏查询。
nacos 常用配置参数
Nacos 常用配置参数Nacos 是一个开源的动态服务发现、配置管理和服务管理平台,它提供了一种简单且强大的方式来管理微服务架构中的配置信息。
在使用 Nacos 进行配置管理时,有一些常用的配置参数可以帮助我们更好地使用和配置 Nacos。
本文将介绍这些常用配置参数,并对其进行详细的解释和说明。
1. Nacos Server 配置参数1.1 server.port•类型:整数•默认值:8848•描述:Nacos Server 的监听端口。
可以通过修改该参数来更改 Nacos Server 的端口号。
1.2 nacos.core.auth.enabled•类型:布尔值•默认值:false•描述:是否启用 Nacos Server 的身份验证功能。
当该参数设置为 true 时,需要在 Nacos Server 中配置相应的用户和角色信息。
1.3 nacos.core.auth.credential.file•类型:字符串•默认值:无•描述:Nacos Server 的用户和角色信息配置文件的路径。
当nacos.core.auth.enabled参数为 true 时,需要在该文件中配置用户和角色信息。
1.4 nacos.server.ip•类型:字符串•默认值:无•描述:Nacos Server 的 IP 地址。
当 Nacos Server 部署在多个节点上时,需要指定每个节点的 IP 地址。
1.5 •类型:字符串•默认值:无•描述:Nacos Server 的名称。
当 Nacos Server 部署在多个节点上时,需要为每个节点指定一个唯一的名称。
2. Nacos Client 配置参数2.1 spring.cloud.nacos.config.server-addr•类型:字符串•默认值:无•描述:Nacos Server 的地址。
用于指定 Nacos Client 连接的 Nacos Server 的地址。
VPN discovery server
专利名称:VPN discovery server发明人:William C. Sax,William Wollman,Egil H. Jegers申请号:US11447092申请日:20060606公开号:US08296839B2公开日:20121023专利内容由知识产权出版社提供专利附图:摘要:Methods and systems for enabling robust routing between protected enclaves over an unsecured network are provided herein. In one aspect, the present invention provides methods and systems for enabling routing among a plurality of protected enclaves, each supported by one or more secure gateways, over an unsecured network.Methods and systems according to the present invention achieve key routing requirements while presenting solutions that can be readily scaled to large network environments. In another aspect, the present invention provides methods and systems for implementing a Prefix Discovery Server (PDS) that enables the mapping of Plain Text (PT) networks to secure gateways, maintains current network routing information, and assists VPN gateways in determining routes to remote protected enclaves.申请人:William C. Sax,William Wollman,Egil H. Jegers地址:McLean VA US,Oceanport NJ US,Eatontown NJ US国籍:US,US,US代理机构:Sterne, Kessler, Goldstein & Fox p.l.l.c.更多信息请下载全文后查看。
presto用法
presto用法Presto是一种开源的分布式SQL查询引擎,它能够快速运行超大规模的数据查询,适用于处理PB级甚至EB级的数据集。
Presto支持标准的SQL语法、丰富的数据源以及强大的连接能力,可以轻松地连接Hadoop、Hive、MySQL、PostgreSQL、Cassandra和MongoDB 等数据源,同时还支持多个数据源的关联查询。
本文将详细介绍Presto的使用方法和技巧,包括Presto的安装、配置、数据连接、数据查询等方面。
一、Presto安装1.1 准备在安装Presto之前,我们需要保证以下环境和技术要求:- Java 8或更高版本- 安装了Python 2.4以上版本- 50MB以上的空余磁盘空间- Linux或Mac OS X系统为了能够运行分布式查询,我们需要安装Presto的服务端和客户端组件。
服务端组件包括Presto Server和Presto Coordinator。
客户端组件包括Presto CLI和JDBC驱动器。
1.2 下载Presto我们需要下载Presto Server、Presto CLI以及JDBC驱动器。
1.3 配置Presto CoordinatorPresto Coordinator是Presto集群中的一个调度节点,用于执行查询和协调查询计划的生成。
为了配置Presto Coordinator,我们需要编辑Presto的主配置文件。
Presto的主配置文件位于Presto Server安装目录下的/etc/config.properties文件中。
我们可以使用vim等Linux编辑器,打开该文件。
在config.properties文件中,我们需要设置以下变量:query.max-memory=50GB # Presto运行查询时使用的最大内存query.max-memory-per-node=1GB # 每个工作节点使用的最大内存discovery-server.enabled=true # 负责查询调度任务的Discovery server开启我们还可以设置其他的配置选项,例如如下的配置:node.environment=my-prodnode.id=my-node-1node.data-dir=/data/prestonode.max-memory=12GB1.4 配置Presto WorkerPresto Worker是一个Presto执行任务的工作节点,它是一个加入Presto集群的数据节点。
Nacos配置(服务注册与发现)
Nacos配置(服务注册与发现)Nacos配置(服务注册与发现)Nacos简介Nacos = (Dynamic) Naming and Configuration Service 注册中⼼+配置中⼼,也就是代替Eureka作为服务注册中⼼,替代Config作为配置中⼼,替代Bus作为消息总线。
Nacos是⼀个更易于构建云原⽣应⽤的动态服务发现、配置管理和服务管理平台。
Nacos主要提供的四种功能服务发现和服务运⾏状况检查Nacos使服务易于注册⾃⼰并通过DNS或HTTP接⼝发现其他服务。
Nacos还提供服务的实时运⾏状况检查,以防⽌向不正常的主机或服务实例发送请求。
动态配置管理动态配置服务使您可以在所有环境中以集中和动态的⽅式管理所有服务的配置。
Nacos消除了在更新配置时重新部署应⽤程序和服务的需求,这使配置更改更加有效和敏捷。
动态DNS服务Nacos⽀持加权路由,使您可以更轻松地在数据中⼼内的⽣产环境中实施中间层负载平衡,灵活的路由策略,流控制和简单的DNS解析服务。
它可以帮助您轻松实现基于DNS的服务发现,并防⽌应⽤程序耦合到特定于供应商的服务发现API。
服务和元数据管理Nacos提供了易于使⽤的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运⾏状况和指标统计信息。
Windows中Nacos下载及安装下载之后,进⼊bin⽬录,cmd startup.cmd -m standalone启动单机模式。
作为服务注册中⼼演⽰新建服务模块新建模块:cloudalibaba-provider-payment9001,引⼊依赖:<!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>编写yml配置server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: '*'主启动类@EnableDiscoveryClient@SpringBootApplicationpublic class PaymentMain9001 {public static void main(String[] args) {SpringApplication.run(PaymentMain9001.class, args);}}Controller接⼝@RestControllerpublic class PaymentController {@Value("${server.port}")private String serverPort;@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id) {return "nacos registry, serverPort: " + serverPort + "\t id" + id;}}测试启动nacos,启动9001服务,访问localhost:8848/nacos。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
return 0;
}
int onvif_fault(struct soap *soap,char *value1,char *value2)
{
soap->fault = (struct SOAP_ENV__Fault*)soap_malloc(soap,(sizeof(struct SOAP_ENV__Fault)));
bind_server_udp1(server_udp);
while(1){
soap_udp=soap_new();
soap_init1(soap_udp, SOAP_IO_UDP);
soap_udp->master = server_udp;
soap_udp->socket = server_udp;
server_udp = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (server_udp == -1) {
printf("unable to create socket\n");
}
/* reuse , "Socket connection successful: slave socket = %d\n", s);
soap_serve(&add_soap);
soap_end(&add_soap);
soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Subcode = (struct SOAP_ENV__Code*)soap_malloc(soap,(sizeof(struct SOAP_ENV__Code)));
soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Subcode->SOAP_ENV__Value = value2;
soap->fault->faultactor = NULL;
soap->fault->detail = NULL;
soap->fault->SOAP_ENV__Reason = NULL;
soap->fault->SOAP_ENV__Node = NULL;
soap->fault->SOAP_ENV__Role = NULL;
}
fprintf(stderr,"soap_serve starting..\n");
retval = soap_serve(soap_udp); //阻塞在这里
fprintf(stderr,"retval=%d\n",retval);
if(retval && !(fault_flag))
}
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = inet_addr("239.255.255.250");
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
if(setsockopt(server_udp,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(mreq))==-1){
#define set_block_fd(fd) fcntl(fd, F_SETFL, 0)
#define set_nonblock_fd(fd) fcntl(fd, F_SETFL, NOBLOCK)
char *server_ip="192.168.1.233";
#define SMALL_INFO_LENGTH 20
soap_udp->errmode = 0;
soap_udp->bind_flags = 1;
if (!soap_valid_socket(soap_bind(soap_udp, NULL, 3702, 100)))
{
soap_print_fault(soap_udp, stderr);
{ struct __wsdd__ProbeMatches soap_tmp___wsdd__ProbeMatches;
if (!soap_action)
soap_action = "/ws-dd/ns/discovery/2009/01/ProbeMatches";
#define IP_LENGTH 20
#define INFO_LENGTH 100
int bind_server_udp1(int server_s)
{
struct sockaddr_in local_addr;
memset(&local_addr,0,sizeof(local_addr));
}
static int create_server_socket_udp(void)
{
int server_udp;
unsigned char one = 1;
int sock_opt = 1;
//server_udp = socket(PF_INET, SOCK_DGRAM, 0);
local_addr.sin_family = AF_INET;
local_addr.sin_addr.s_addr = htonl(INADDR_ANY);
local_addr.sin_port = htons(3702);
return bind(server_s,(struct sockaddr*)&local_addr,sizeof(local_addr));
#include <netinet/in.h>
#define __DEBUG
#ifdef __DEBUG
#define DBG(fmt,args...) fprintf(stdout, fmt, ##args)
#else
#define DBG(fmt,args...)
#endif
#define ERR(fmt,args...) fprintf(stderr, fmt, ##args)
soap->fault->SOAP_ENV__Detail = NULL;
}
int __wsdd__Hello(struct soap* soap, struct wsdd__HelloType *wsdd__Hello)
{
fprintf(stderr,"__wsdd__Hello\n");
}
int __wsdd__Bye(struct soap* soap, struct wsdd__ByeType *wsdd__Bye)
{
fprintf(stderr,"__wsdd__Bye\n");
}
SOAP_FMAC5 int SOAP_FMAC6 soap_send___wsdd__ProbeMatches(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct wsdd__ProbeMatchesType *wsdd__ProbeMatches)
if (argc < 2) {
printf("usage: %s <server_port> \n", argv[0]);
exit(1);
} else {
m = soap_bind(&add_soap, NULL, atoi(argv[1]), 100);
perror("memberchip error\n");
}
return server_udp;
}
int main()
{
int server_udp;
int retval=0;
struct soap *soap_udp;
int fault_flag = 0;
server_udp = create_server_socket_udp();
{
fault_flag = 1;
}
else if(!retval)
{
fault_flag = 0;
}
soap_destroy(soap_udp);
soap_end(soap_udp);
soap_done(soap_udp);
free(soap_udp);
soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = (struct SOAP_ENV__Code*)soap_malloc(soap,(sizeof(struct SOAP_ENV__Code)));;
soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value = value1;
if (m < 0) {
soap_print_fault(&add_soap, stderr);
exit(-1);
}
fprintf(stderr, "Socket connection successful: master socket = %d\n", m);
}
}
int main_test(int argc, char **argv)
{
int m, s;