RabbitMQ启动出现Socket Closed

一.项目启动报错出现 Socket Closed

2020-04-24 10:15:18.565 [SimpleAsyncTaskExecutor-1] INFO o.s.a.r.c.CachingConnectionFactory - Attempting to connect to: [127.0.0.1:5672]
2020-04-24 10:15:24.089 [AMQP Connection 127.0.0.1:5672] ERROR c.r.c.impl.ForgivingExceptionHandler - An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:580)
at java.lang.Thread.run(Thread.java:748)
2020-04-24 10:15:24.091 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.l.SimpleMessageListenerContainer - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:74)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:476)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:614)
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:240)
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1797)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1771)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1752)
at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:338)
at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.redeclareElementsIfNecessary(AbstractMessageListenerContainer.java:1604)
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:963)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.TimeoutException: null
at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77)
at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:120)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:494)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:306)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:957)


这是项目中rabbitMQ的配置


图片说明


**浏览器登录RabbitMQ **


图片说明


图片说明

**-----

我使用的是guest账户登录的


图片说明

求解答!!!**

**-----------------
研究了几天,然后发现是我的erlang的版本和rabbitMQ的版本不对应。
安装rabbitMQ的管理插件,方便在浏览器端管理RabbitMQ,先进入rabbitMQ的sbin目录,
管理员身份运行 rabbitmq-plugins.bat enable rabbitmq_management
出现错误,所以我重装了rabbitMQ,让erlang的版本和rabbitMQ对应上,如果不是版本冲突不要用我这方法
**

2个回答

在管理台看下是不是你监听的队列还没创建

weixin_44605502
weixin_44605502 创建了
3 个月之前 回复

生产者和消费者都开启了嘛

weixin_44605502
weixin_44605502 生产者工程启动没有问题,消费者启动是错误的Socket Closed
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SpringBoot 集成RabbitMQ 启动时报Socket Close 错误

今天在做SpringBoot 集成RabbitMQ时,启动会报 ``` java.net.SocketException: Socket Closed at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.7.0_80] at java.net.SocketInputStream.read(SocketInputStream.java:152) ~[na:1.7.0_80] at java.net.SocketInputStream.read(SocketInputStream.java:122) ~[na:1.7.0_80] at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) ~[na:1.7.0_80] at java.io.BufferedInputStream.read(BufferedInputStream.java:254) ~[na:1.7.0_80] at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.7.0_80] at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571) ~[amqp-client-4.0.2.jar:4.0.2] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80] 2018-12-18 18:29:21.876 INFO 10896 --- [cTaskExecutor-2] o.s.a.r.c.CachingConnectionFactory : Created new connection: SimpleConnection@77d0bf3e [delegate=amqp://admin@192.168.220.128:5672/, localPort= 51285] 2018-12-18 18:29:22.953 INFO 10896 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2018-12-18 18:29:22.964 INFO 10896 --- [ main] com.gg.miaosha.MainApplication : Started MainApplication in 33.034 seconds (JVM running for 34.017) 2018-12-18 18:29:27.019 WARN 10896 --- [cTaskExecutor-1] o.s.a.r.l.SimpleMessageListenerContainer : Consumer raised exception, processing can restart if the connection factory supports it org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:74) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:370) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:565) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:90) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:140) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:76) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:505) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1382) ~[spring-rabbit-1.7.1.RELEASE.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80] Caused by: java.util.concurrent.TimeoutException: null at com.rabbitmq.utility.BlockingCell.get(BlockingCell.java:77) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.utility.BlockingCell.uninterruptibleGet(BlockingCell.java:120) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:372) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:297) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:909) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:859) ~[amqp-client-4.0.2.jar:4.0.2] at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:799) ~[amqp-client-4.0.2.jar:4.0.2] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:351) ~[spring-rabbit-1.7.1.RELEASE.jar:na] ... 7 common frames omitted ``` 以下是我的配置文件 ``` spring.rabbitmq.addresses=192.168.220.128 spring.rabbitmq.username=admin spring.rabbitmq.password=admin spring.rabbitmq.publisher-confirms=true spring.rabbitmq.virtual-host=/ spring.rabbitmq.connection-timeout=60000 #\u6D88\u8D39\u8005\u6570\u91CF spring.rabbitmq.listener.simple.concurrency= 10 spring.rabbitmq.listener.simple.max-concurrency= 10 #\u6D88\u8D39\u8005\u6BCF\u6B21\u4ECE\u961F\u5217\u83B7\u53D6\u7684\u6D88\u606F\u6570\u91CF spring.rabbitmq.listener.simple.prefetch= 1 #\u6D88\u8D39\u8005\u81EA\u52A8\u542F\u52A8 spring.rabbitmq.listener.simple.auto-startup=true #\u6D88\u8D39\u5931\u8D25\uFF0C\u81EA\u52A8\u91CD\u65B0\u5165\u961F spring.rabbitmq.listener.simple.default-requeue-rejected= true #\u542F\u7528\u53D1\u9001\u91CD\u8BD5 spring.rabbitmq.template.retry.enabled=true spring.rabbitmq.template.retry.initial-interval=1000 spring.rabbitmq.template.retry.max-attempts=3 spring.rabbitmq.template.retry.max-interval=10000 spring.rabbitmq.template.retry.multiplier=1.0 ``` 但是程序能够 正常运行 RabbitMQ也能进行正常的信息收发, 但是这个错误看着有点受不了.请问有大神知道问题出在哪里吗??

socket编程发送消息出现socket closed求大神,急

import java.io.DataInputStream; import java.io.EOFException; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { ServerSocket ss; Socket s ; Clients clients; DataInputStream dis; boolean startServer = false; public void startServer(){ try { ss = new ServerSocket(8888);//8888是TCP端口号 startServer = true; while(startServer){ s = ss.accept(); System.out.println(" connected!"); clients = new Clients(s); new Thread(clients).start(); } }catch(IOException e){ e.printStackTrace(); }finally{ try { ss.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { new Server().startServer(); } } class Clients implements Runnable{//包装类,把外部连接的client包装 private Socket s; private boolean isConnected = false ; private DataInputStream dis; public Clients(Socket s) { this.s = s; try { isConnected = true; dis = new DataInputStream(s.getInputStream()); } catch (IOException e) { e.printStackTrace(); } } @Override public void run() { while(isConnected){ try { String str = dis.readUTF();//阻塞:它会一直等待 System.out.println(str); } catch (EOFException e){ System.out.println("Client is closed!"); }catch (IOException e1) { e1.printStackTrace(); }finally{ try { if(dis!=null) { dis.close(); }else{ ; } if(s!=null) { s.close(); }else{ ; } } catch (IOException e) { e.printStackTrace(); } } } } } import java.io.DataOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Client { Socket s; PrintWriter pw; DataOutputStream dos; String line = ""; Scanner reader = new Scanner(System.in); public void startClient(){ try { s = new Socket("127.0.0.1", 8888); dos = new DataOutputStream(s.getOutputStream()); System.out.println("connected"); do{ System.out.print("please input:"); line = reader.next(); dos.writeUTF(line); dos.flush(); }while(!line.equals("bye")); dos.close(); s.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { new Client().startClient(); } } java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at Clients.run(Server.java:75) at java.lang.Thread.run(Unknown Source)

java.net.SocketException: socket closed

返回的httpresponse 内容如下 HTTP/1.1 200 OK [Server: zhihu_nginx, Date: Sun, 29 Sep 2013 02:08:35 GMT, Content-Type: application/json, Transfer-Encoding: chunked, Connection: keep-alive, Vary: Accept-Encoding, Expires: Fri, 02 Jan 2000 00:00:00 GMT, Pragma: no-cache, Cache-Control: private, no-store, max-age=0,no-cache, must-revalidate, post-check=0, pre-check=0] 报错如下: Exception in thread "main" java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152) at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:203) at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:174) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137) at java.util.zip.InflaterInputStream.fill(Unknown Source) at java.util.zip.InflaterInputStream.read(Unknown Source) at java.util.zip.GZIPInputStream.read(Unknown Source) at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) at sun.nio.cs.StreamDecoder.implRead(Unknown Source) at sun.nio.cs.StreamDecoder.read(Unknown Source) at java.io.InputStreamReader.read(Unknown Source) at java.io.Reader.read(Unknown Source) at org.apache.http.util.EntityUtils.toString(EntityUtils.java:244) at org.apache.http.util.EntityUtils.toString(EntityUtils.java:288) at zhihu.ZhihuDownload.getAnswersList(ZhihuDownload.java:138) at zhihu.ZhihuDownload.main(ZhihuDownload.java:54)

RabbitMQ发布可以从控制台运行,但不能从浏览器运行

<div class="post-text" itemprop="text"> <p>I have a simple PHP code that sends a message to a RabbitMQ queue, when I execute it directly from the console (#php script.php) the message is published correctly, but when I try to open the same script using my browser (<a href="http://localhost/script.php" rel="nofollow noreferrer">http://localhost/script.php</a>) the message is not sent. All previous lines are executed but the page stucks in the line </p> <pre><code>$connection = new AMQPConnection('$ipaddress', 5672, '$user', '$password'); </code></pre> <p>Any ideas of why is this happening ?</p> <p>CODE: script.php</p> <pre><code>&lt;?php include_once('rabbitmq_function.php'); $result = rabbitmq_send("test"); print_r($result); </code></pre> <p>CODE: rabbitmq_function.php</p> <pre><code>&lt;?php require_once '/usr/share/php/PhpAmqpLib/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Connection\AMQPConnection; use PhpAmqpLib\Message\AMQPMessage; function rabbitmq_send($data) { print_r("Before AMQP Connection"); $connection = new AMQPConnection('10.0.0.8', 5672, 'guest', 'guest'); print_r("After AMQP Connection"); $channel = $connection-&gt;channel(); $channel-&gt;queue_declare('task_queue', false, true, false, false); $msg = new AMQPMessage( $data, array('delivery_mode' =&gt; AMQPMessage::DELIVERY_MODE_PERSISTENT) ); $channel-&gt;basic_publish($msg, '', 'task_queue'); $channel-&gt;close(); $connection-&gt;close(); return true; } </code></pre> <p>From CLI: I get the two debug messages (Before and After), and the return "1" value. And also I'm seeing a new message in the RabbitMQ management. From Browser: I get only printed the "Before AMQP Connection" message and no new message in the queue</p> </div>

RabbitMQ TLS tls_connection:format_status / 2崩溃

<div class="post-text" itemprop="text"> <p>I'm trying to make a simple TLS connection using Go, and RabbitMQ reports this issue upon attempting to create a connection with TLS enabled (Go client):</p> <pre><code>rabbitmq_1 | 2018-04-16 13:37:54.146 [error] &lt;0.537.0&gt; ** State machine &lt;0.537.0&gt; terminating rabbitmq_1 | ** Last event = {{call,{&lt;0.362.0&gt;,#Ref&lt;0.2669730211.1202454530.228189&gt;}},{new_user,&lt;0.359.0&gt;}} rabbitmq_1 | ** When server state = {error,"tls_connection:format_status/2 crashed"} rabbitmq_1 | ** Reason for termination = error:function_clause rabbitmq_1 | ** Callback mode = state_functions rabbitmq_1 | ** Stacktrace = rabbitmq_1 | ** [{tls_connection,gen_handshake,[error,{call,{&lt;0.362.0&gt;,#Ref&lt;0.2669730211.1202454530.228189&gt;}},{new_user,&lt;0.359.0&gt;},{{options,{keyfil$ ,"/certificates/server_key.pem",{error,eacces}}},{state,server,{#Ref&lt;0.2669730211.1202454530.228187&gt;,&lt;0.362.0&gt;},gen_tcp,tls_connection,tcp,tcp_closed,$ cp_error,"localhost",5671,#Port&lt;0.26641&gt;,{ssl_options,tls,[{3,3},{3,2},{3,1}],verify_none,{#Fun&lt;ssl.8.51913203&gt;,[]},#Fun&lt;ssl.9.51913203&gt;,false,false,u$ defined,1,&lt;&lt;"/certificates/server_certificate.pem"&gt;&gt;,undefined,&lt;&lt;"/certificates/server_key.pem"&gt;&gt;,undefined,[],undefined,&lt;&lt;"/certificates/ca_certifica$ e.pem"&gt;&gt;,undefined,undefined,undefined,undefined,undefined,[&lt;&lt;"�,"&gt;&gt;,&lt;&lt;"�0"&gt;&gt;,&lt;&lt;"�$"&gt;&gt;,&lt;&lt;"�("&gt;&gt;,&lt;&lt;"�."&gt;&gt;,&lt;&lt;"�2"&gt;&gt;,&lt;&lt;"�&amp;"&gt;&gt;,&lt;&lt;"�*"&gt;&gt;,&lt;&lt;204,20&gt;&gt;,&lt;&lt;204,1$ &gt;&gt;,&lt;&lt;204,21&gt;&gt;,&lt;&lt;0,159&gt;&gt;,&lt;&lt;0,163&gt;&gt;,&lt;&lt;0,107&gt;&gt;,&lt;&lt;0,106&gt;&gt;,&lt;&lt;0,157&gt;&gt;,&lt;&lt;0,61&gt;&gt;,&lt;&lt;"�+"&gt;&gt;,&lt;&lt;"�/"&gt;&gt;,&lt;&lt;"�#"&gt;&gt;,&lt;&lt;"�'"&gt;&gt;,&lt;&lt;"�-"&gt;&gt;,&lt;&lt;"�1"&gt;&gt;,&lt;&lt;"�%"&gt;&gt;,&lt;&lt;"�)"&gt;&gt;,&lt;&lt;0,1$ 8&gt;&gt;,&lt;&lt;0,162&gt;&gt;,&lt;&lt;0,103&gt;&gt;,&lt;&lt;0,64&gt;&gt;,&lt;&lt;0,156&gt;&gt;,&lt;&lt;0,60&gt;&gt;,&lt;&lt;"� "&gt;&gt;,&lt;&lt;192,20&gt;&gt;,&lt;&lt;0,57&gt;&gt;,&lt;&lt;0,56&gt;&gt;,&lt;&lt;192,5&gt;&gt;,&lt;&lt;192,15&gt;&gt;,&lt;&lt;0,53&gt;&gt;,&lt;&lt;"�\t"&gt;&gt;,&lt;&lt;192,19&gt;&gt;,&lt;&lt;0,51&gt;&gt;$ &lt;&lt;0,50&gt;&gt;,&lt;&lt;192,4&gt;&gt;,&lt;&lt;192,14&gt;&gt;,&lt;&lt;0,47&gt;&gt;,&lt;&lt;"�\b"&gt;&gt;,&lt;&lt;192,18&gt;&gt;,&lt;&lt;0,22&gt;&gt;,&lt;&lt;0,19&gt;&gt;,&lt;&lt;192,3&gt;&gt;,&lt;&lt;"� "&gt;&gt;,&lt;&lt;0,10&gt;&gt;],#Fun&lt;ssl.2.51913203&gt;,true,268435456,false,$ rue,infinity,false,undefined,undefined,undefined,undefined,true,undefined,[],undefined,false,true,one_n_minus_one,undefined,false,{ssl_crl_cache,{inte$ nal,[]}},[{sha512,ecdsa},{sha512,rsa},{sha384,ecdsa},{sha384,rsa},{sha256,ecdsa},{sha256,rsa},{sha224,ecdsa},{sha224,rsa},{sha,ecdsa},{sha,rsa},{sha,ds a}],{elliptic_curves,[{1,3,132,0,39},{1,3,132,0,38},{1,3,132,0,35},{1,3,36,3,3,2,8,1,1,13},{1,3,132,0,36},{1,3,132,0,37},{1,3,36,3,3,2,8,1,1,11},{1,3,1 32,0,34},{1,3,132,0,16},{1,3,132,0,17},{1,3,36,3,3,2,8,1,1,7},{1,3,132,0,10},{1,2,840,10045,3,1,7},{1,3,132,0,3},{1,3,132,0,26},{1,3,132,0,27},{1,3,132 ,0,32},{1,3,132,0,33},{1,3,132,0,24},{1,3,132,0,25},{1,3,132,0,31},{1,2,840,10045,3,1,1},{1,3,132,0,1},{1,3,132,0,2},{1,3,132,0,15},{1,3,132,0,9},{1,3, 132,0,8},{1,3,132,0,30}]},false,false,262144},{socket_options,binary,raw,0,0,false},#{current_read =&gt; #{beast_mitigation =&gt; one_n_minus_one,cipher_stat e =&gt; undefined,client_verify_data =&gt; undefined,compression_state =&gt; undefined,mac_secret =&gt; undefined,secure_renegotiation =&gt; undefined,security_parame ters =&gt; {security_parameters,&lt;&lt;0,0&gt;&gt;,0,0,0,0,0,0,0,0,0,0,0,undefined,undefined,undefined,undefined},sequence_number =&gt; 0,server_verify_data =&gt; undefine d},current_write =&gt; #{beast_mitigation =&gt; one_n_minus_one,cipher_state =&gt; undefined,client_verify_data =&gt; undefined,compression_state =&gt; undefined,mac_ secret =&gt; undefined,secure_renegotiation =&gt; undefined,security_parameters =&gt; {security_parameters,&lt;&lt;0,0&gt;&gt;,0,0,0,0,0,0,0,0,0,0,0,undefined,undefined,und efined,undefined},sequence_number =&gt; 0,server_verify_data =&gt; undefined},pending_read =&gt; #{beast_mitigation =&gt; one_n_minus_one,cipher_state =&gt; undefined ,client_verify_data =&gt; undefined,compression_state =&gt; undefined,mac_secret =&gt; undefined,secure_renegotiation =&gt; undefined,security_parameters =&gt; {secur ity_parameters,undefined,0,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,&lt;&lt;90 ,212,167,50,197,80,21,183,229,252,83,2,191,100,222,147,149,112,255,82,15,77,192,185,123,46,121,210,16,197,219,183&gt;&gt;,undefined},server_verify_data =&gt; un defined},pending_write =&gt; #{beast_mitigation =&gt; one_n_minus_one,cipher_state =&gt; undefined,client_verify_data =&gt; undefined,compression_state =&gt; undefine d,mac_secret =&gt; undefined,secure_renegotiation =&gt; undefined,security_parameters =&gt; {security_parameters,undefined,0,undefined,undefined,undefined,undef ined,undefined,undefined,undefined,...},...}},...}}],...},...] rabbitmq_1 | 2018-04-16 13:37:54.146 [error] &lt;0.537.0&gt; CRASH REPORT Process &lt;0.537.0&gt; with 0 neighbours crashed with reason: no function clause matchi ng tls_connection:gen_handshake(error, {call,{&lt;0.362.0&gt;,#Ref&lt;0.2669730211.1202454530.228189&gt;}}, {new_user,&lt;0.359.0&gt;}, {{options,{keyfile,"/certificates /server_key.pem",{error,eacces}}},{state,server,{#Ref&lt;0.2669730211.1202454530.228187&gt;,...},...}}) line 714 rabbitmq_1 | 2018-04-16 13:37:54.148 [error] &lt;0.203.0&gt; Supervisor tls_connection_sup had child undefined started with {tls_connection,start_link,undef ined} at &lt;0.537.0&gt; exit with reason no function clause matching tls_connection:gen_handshake(error, {call,{&lt;0.362.0&gt;,#Ref&lt;0.2669730211.1202454530.22818 9&gt;}}, {new_user,&lt;0.359.0&gt;}, {{options,{keyfile,"/certificates/server_key.pem",{error,eacces}}},{state,server,{#Ref&lt;0.2669730211.1202454530.228187&gt;,...} ,...}}) line 714 in context child_terminated rabbitmq_1 | 2018-04-16 13:37:54.148 [error] &lt;0.360.0&gt; Supervisor {&lt;0.360.0&gt;,ranch_acceptors_sup} had child {acceptor,&lt;0.360.0&gt;,1} started with ranch_acceptor:start_link({sslsocket,nil,{#Port&lt;0.26210&gt;,{config,{ssl_options,tls,[{3,3},{3,2},{3,1}],verify_none,{#Fun&lt;ssl.8..&gt;,...},...},...}}}, ranch_ssl, &lt;0.359.0&gt;) at &lt;0.362.0&gt; exit with reason {{function_clause,[{tls_connection,gen_handshake,[error,{call,{&lt;0.362.0&gt;,#Ref&lt;0.2669730211.1202454530.228189&gt; }},{new_user,&lt;0.359.0&gt;},{{options,{keyfile,"/certificates/server_key.pem",{error,eacces}}},{state,server,{#Ref&lt;0.2669730211.1202454530.228187&gt;,&lt;0.362.0 &gt;},gen_tcp,tls_connection,tcp,tcp_closed,tcp_error,"localhost",5671,#Port&lt;0.26641&gt;,{ssl_options,tls,[{3,3},{3,2},{3,1}],verify_none,{#Fun&lt;ssl.8.5191320 3&gt;,[]},#Fun&lt;ssl.9.51913203&gt;,false,false,undefined,1,&lt;&lt;"/certificates/server_certifica..."&gt;&gt;,...},...}}],...},...]},...} in context child_terminated </code></pre> <p>This is my Go client:</p> <pre><code>package main import ( "fmt" "log" "crypto/tls" "crypto/x509" "io/ioutil" "github.com/streadway/amqp" ) func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) panic(fmt.Sprintf("%s: %s", msg, err)) } } func main() { cfg := new(tls.Config) cfg.RootCAs = x509.NewCertPool() if ca, err := ioutil.ReadFile("/certificates/ca_certificate.pem"); err == nil { cfg.RootCAs.AppendCertsFromPEM(ca) } if cert, err := tls.LoadX509KeyPair("/certificates/client_certificate.pem", "/certificates/client_key.pem"); err == nil { cfg.Certificates = append(cfg.Certificates, cert) } conn, err := amqp.DialTLS("amqps://guest:guest@rabbitmq:5671", cfg) failOnError(err, "Failed to connect to RabbitMQ") defer conn.Close() ch, err := conn.Channel() failOnError(err, "Failed to open a channel") defer ch.Close() q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when unused false, // exclusive false, // no-wait nil, // arguments ) failOnError(err, "Failed to declare a queue") msgs, err := ch.Consume( q.Name, // queue "", // consumer true, // auto-ack false, // exclusive false, // no-local false, // no-wait nil, // args ) failOnError(err, "Failed to register a consumer") forever := make(chan bool) go func() { for d := range msgs { log.Printf("Received a message: %s", d.Body) } }() log.Printf(" [*] Waiting for messages. To exit press CTRL+C") &lt;-forever } </code></pre> <p>And this is my RabbitMQ config file:</p> <pre><code>loopback_users.guest = false listeners.tcp.default = 5672 hipe_compile = false management.listener.port = 15672 management.listener.ssl = false listeners.ssl.1 = 5671 ssl_options.cacertfile = /certificates/ca_certificate.pem ssl_options.certfile = /certificates/server_certificate.pem ssl_options.keyfile = /certificates/server_key.pem </code></pre> <p>I don't know Erlang nor do I have experience with RabbitMQ itself or even TLS for that matter, and this forum post was the closest I got for this issue:</p> <p><a href="https://bugs.erlang.org/browse/ERL-539" rel="nofollow noreferrer">https://bugs.erlang.org/browse/ERL-539</a></p> <p>Any ideas of what could cause this?</p> <p>Some additional details: </p> <ul> <li><strong>Erlang version</strong>: 20</li> <li><strong>Erlang SSL version</strong>: 20.2</li> <li><strong>RabbitMQ version</strong>: 3.7.4</li> <li>Running within <code>docker-compose</code> using RabbitMQ's official image</li> <li>I've generated the certificates using the <strong>tls-gen</strong> tool as suggested by the <a href="https://www.rabbitmq.com/ssl.html" rel="nofollow noreferrer" title="official documentation">official documentation</a>.</li> </ul> </div>

为什么在我的laravel日志中尝试弹出通道连接时出现此错误AMQP错误?

<div class="post-text" itemprop="text"> <p>早上好,各位开发人员。 在我的laravel日志中,每秒写这种类型的错误 尝试弹出频道连接时,AMQP错误关闭。 但是队列工作正常。 可是有时由于这个错误,laravel崩溃了。 有人遇到过这类问题吗? 我正在通过此命令开始排队</p> <pre><code>nohup php artisan queue:work --queue=NAME_OF_QUEUE --timeout=0 --daemon &amp; </code></pre> <p>请帮助我谢谢。</p> </div>

Php worker在15分钟的空闲时间后出现异常

<div class="post-text" itemprop="text"> <p>I have written a php worker to fetch data from RabbitMQ queue.The php worker is running successfully as a background job on some server which connects RabbitMQ server for consuming data using AMQP php extension.After there is no data enqued in the queue for 15 minutes, php scripts throws AMQPException. Exception is :</p> <blockquote> <p>AMQPException Object (</p> </blockquote> <pre><code>[message:protected] =&gt; Library error: a socket error occurred [string:Exception:private] =&gt; [code:protected] =&gt; 0 [file:protected] =&gt; /home/indiamart/public_html/dev-weberp-auto-dialer/merp/devworker.php [line:protected] =&gt; 104 [trace:Exception:private] =&gt; Array ( [0] =&gt; Array ( [file] =&gt; /home/indiamart/public_html/dev-weberp-auto-dialer/merp/devworker.php [line] =&gt; 104 [function] =&gt; consume [class] =&gt; AMQPQueue [type] =&gt; -&gt; [args] =&gt; Array ( [0] =&gt; Closure Object ( [parameter] =&gt; Array ( [$message] =&gt; &lt;required&gt; [$q] =&gt; &lt;required&gt; ) ) ) ) ) [previous:Exception:private] =&gt; </code></pre> <p>)</p> <p>Below is my worker code:</p> <pre><code> &lt;?php $callback_func = function(AMQPEnvelope $message, AMQPQueue $q){ $data = json_decode($message-&gt;getBody(), true); $getDeliveryTag = $message-&gt;getDeliveryTag(); $ack = $q-&gt;ack($getDeliveryTag);//used $getDeliveryTag $to = isset($data["to"])?$data["to"]:""; $subjectMail = isset($data["subject"])?$data["subject"]:""; $mail_body_content = isset($data["body"])?"&lt;pre&gt;".$data["body"]."&lt;/pre&gt;":""; $mailfrom = isset($data["mailfrom"])?$data["mailfrom"]:""; $cc = isset($data["cc"])?$data["cc"]:""; $mailfromname = isset($data["mailfromname"])?$data["mailfromname"]:""; $uniqueid = isset($data["unique_id"])?$data["unique_id"]:""; if(!$ack){//if ack not recieved $ack_msg = "Unique id: $uniqueid Subject : $subjectMail"; @mail("abc@example.com","History Queue Not acknowledged!",$ack_msg); } if($message-&gt;isRedelivery()){ $red_msg = "Unique id: $uniqueid Subject : $subjectMail"; @mail("abc@example.com","History Queue Redilivery!",$red_msg); } $m_headers_trail = "From:$mailfromname&lt;$mailfrom&gt; ". "Cc:$cc ". "MIME-Version: 1.0 ". "Content-type: text/html; charset=UTF-8"; $flag = @mail($to,$subjectMail,$mail_body_content,$m_headers_trail); $flag_message = $flag ? "success unique id: $uniqueid Subject :$subjectMail" : "mail failed"; @mail("abc@example.com","History Mailer Result",$flag_message); }; $host = "127.0.0.1"; $vhost = "/"; $port = 5672; $login = "admin"; $password = "admin"; CHANNEL : try{ @mail("abc@example.com","History Queue worker Start!","Worker started!"); $cnn = new AMQPConnection(array("host" =&gt; $host,"vhost" =&gt; $vhost,"port" =&gt; $port,"login" =&gt; $login,"password" =&gt; $password)); $cnn-&gt;connect(); if(!$cnn){ @mail("abc@example.com","History Queue Connection Error!","Connection not established!"); } $ch = new AMQPChannel($cnn); $queue = new AMQPQueue($ch); $queue-&gt;setName('STS_UPDATE_MAIL'); $queue-&gt;setFlags(AMQP_NOPARAM); $queue-&gt;consume($callback_func); $ch-&gt;close(); $cnn-&gt;close(); }catch(Exception $e){ if ($ch-&gt;isConnected()) { $ch-&gt;close(); @mail("abc@example.com","History Queue Closing Connection!","Closed!"); } if ($cnn-&gt;isConnected()) { $cnn-&gt;close(); @mail("abc@example.com","History Queue Closing Connection!","Closed!"); } goto CHANNEL; } ?&gt; </code></pre> </div>

PHP AMQP消费者在一段时间后没有回应

<div class="post-text" itemprop="text"> <p>我遇到了一个 php amqp consumer的小问题,它最近罢工了,在下面你可以看到我的 silex 命令。 我还尝试使用 heartbeat 和 keepalive 配置来处理断开的网络连接,但不奏效。Consumer不从队列中读取消息的原因是什么?脚本也没有删除,但就是不起作用。</p> <pre><code>&lt;?php use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Knp\Command\Command as BaseCommand; use PhpAmqpLib\Message\AMQPMessage; class RequestWorkerCommand extends BaseCommand { protected function configure() { $this-&gt;setName('queue:worker'); } protected function execute(InputInterface $input, OutputInterface $output) { $app = $this-&gt;getSilexApplication(); $amqp = $app['amqp.connection']; /* @var $amqp \PhpAmqpLib\Connection\AMQPStreamConnection */ $channel = $amqp-&gt;channel(); $callback = function($message) use ($input, $output) { return call_user_func_array([$this, 'processMessage'], [$message, $input, $output]); }; $channel-&gt;queue_declare('myqueue', false, true, false, false); $channel-&gt;basic_qos(null, 1, null); $channel-&gt;basic_consume('myqueue', '', false, false, false, false, $callback); while(count($channel-&gt;callbacks)) { $output-&gt;writeln('Waiting for incoming price requests'); $channel-&gt;wait(); } } protected function processMessage(AMQPMessage $message, InputInterface $input, OutputInterface $output) { $app = $this-&gt;getSilexApplication(); try { $data = json_decode($message-&gt;body, true); $request = Request::createFromArray($data); /* create object from data */ $message-&gt;delivery_info['channel']-&gt;basic_ack($message-&gt;delivery_info['delivery_tag']); $app['distributor']-&gt;distribute($request); /* process message */ } catch (\Exception $e) { /* handle error */ } } } </code></pre> </div>

使用wss://时,Websockets和https不会连接

<div class="post-text" itemprop="text"> <p>i am creating a php web chat app for my site, it is built in php and js html, it works fine (with some minor annoyances and needing updates) when it is used over http (in secure connections) but when i use https it asked about loading unsafe scripts (the main js for the system) which i dont want, i have tried to change it to wss:// but now i dont get any connection now, there is two main parts to the site the page and the server, the page is as follows</p> <pre><code>&lt;style type="text/css"&gt; &lt;!-- .chat_wrapper { width: 100%; height: 100%; margin-right: auto; margin-left: auto; background: #CCCCCC; border: 1px solid #999999; padding: 10px; font: 12px 'lucida grande',tahoma,verdana,arial,sans-serif; } .chat_wrapper .message_box { background: #FFFFFF; height: 380px; overflow: scroll; padding: 10px; border: 1px solid #999999; } .chat_wrapper .panel input{ padding: 2px 2px 2px 5px; } .system_msg{color: #BDBDBD;font-style: italic;} .user_name{font-weight:bold;} .user_message{color: #88B6E0;} --&gt; &lt;/style&gt; &lt;?php $colours = array('007AFF','FF7000','FF7000','15E25F','CFC700','CFC700','CF1100','CF00BE','F00'); $user_colour = array_rand($colours); ?&gt; &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"&gt;&lt;/script&gt; &lt;script language="javascript" type="text/javascript"&gt; $(document).ready(function(){ $("#message").keyup(function(event){ if(event.keyCode == 13){ $("#send-btn").click(); } }); //create a new WebSocket object. var wsUri = "ws://radiobeacononline.com:9000/server.php"; websocket = new WebSocket(wsUri); websocket.onopen = function(ev) { // connection is open var myname = $('#name').val(); //get user name var mypic = $('#pic').val(); var msg = { message: 'has just joined the chat', name: myname, pic : mypic, color : '&lt;?php echo $colours[$user_colour]; ?&gt;' }; //convert and send data to server websocket.send(JSON.stringify(msg)); $('#message_box').append("&lt;div class=\"system_msg\"&gt;Connected!&lt;/div&gt;"); //notify user } $('#send-btn').click(function(){ //use clicks message send button var mymessage = $('#message').val(); //get message text var myname = $('#name').val(); //get user name if(mymessage == ""){ //emtpy message? alert("Enter Some message Please!"); return; } var mypic = $('#pic').val(); //prepare json data var msg = { //type : 'mesage', message: mymessage, name: myname, pic : mypic, color : '&lt;?php echo $colours[$user_colour]; ?&gt;' }; //convert and send data to server websocket.send(JSON.stringify(msg)); }); //#### Message received from server? websocket.onmessage = function(ev) { var msg = JSON.parse(ev.data); //PHP sends Json data var type = msg.type; //message type var umsg = msg.message; //message text var uname = msg.name; //user name var upic = msg.pic // user pic var ucolor = msg.color; //color if(type == 'usermsg') { $('#message_box').append("&lt;div&gt;&lt;span class=\"user_name\" style=\"color:#"+ucolor+"\"&gt;&lt;img src=\"app/engine/storage/users/"+uname+"/profile/"+upic+"\" width=\"23\" height=\"23\"&gt;"+uname+"&lt;/span&gt; : &lt;span class=\"user_message\"&gt;"+umsg+"&lt;/span&gt;&lt;/div&gt;"); } if(type == 'system') { $('#message_box').append("&lt;div class=\"system_msg\"&gt;"+umsg+"&lt;/div&gt;"); } $('#message').val(''); //reset text }; window.setInterval(function() { var elem = document.getElementById('message_box'); elem.scrollTop = elem.scrollHeight; }, 500); websocket.onerror = function(ev){$('#message_box').append("&lt;div class=\"system_error\"&gt;Error Occurred - "+ev.data+"&lt;/div&gt;");}; websocket.onclose = function(ev){$('#message_box').append("&lt;div class=\"system_msg\"&gt;Connection Closed&lt;/div&gt;");}; }); &lt;/script&gt; &lt;div class="chat_wrapper"&gt; &lt;div class="message_box" id="message_box"&gt;&lt;/div&gt; &lt;div class="panel"&gt; &lt;input type="text" name="name" hidden="" id="name" value="&lt;?= fSession::get('user_name')?&gt;" maxlength="10" style="width:20%" /&gt; &lt;input type="text" name="pic" hidden="" id="pic" value="&lt;?= fSession::get('user_photo')?&gt;" maxlength="10" style="width:20%" /&gt; &lt;div class="input-group"&gt; &lt;span class="input-group-addon" id="basic-addon3"&gt;&lt;?= fSession::get('user_name')?&gt;&lt;/span&gt; &lt;input type="text" class="form-control" id="message" aria-describedby="basic-addon3" placeholder="Message" maxlength="80"&gt; &lt;/div&gt; &lt;button class="btn btn-default form-inline" id="send-btn"&gt;Send&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p>and the server is as follows</p> <pre><code> &lt;?php $host = 'radiobeacononline.com'; //host $port = '9000'; //port $null = NULL; //null var //Create TCP/IP sream socket $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //reuseable port socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1); //bind socket to specified host socket_bind($socket, 0, $port); //listen to port socket_listen($socket); //create &amp; add listning socket to the list $clients = array($socket); //start endless loop, so that our script doesn't stop while (true) { //manage multipal connections $changed = $clients; //returns the socket resources in $changed array socket_select($changed, $null, $null, 0, 10); //check for new socket if (in_array($socket, $changed)) { $socket_new = socket_accept($socket); //accpet new socket $clients[] = $socket_new; //add socket to client array $header = socket_read($socket_new, 1024); //read data sent by the socket perform_handshaking($header, $socket_new, $host, $port); //perform websocket handshake socket_getpeername($socket_new, $ip); //get ip address of connected socket //$response = mask(json_encode(array('type'=&gt;'system', 'message'=&gt;'A user has joined connected'))); //prepare json data //send_message($response); //notify all users about new connection $time = time(); $file = fopen('app/engine/storage/writeable/logs/chat.log','a+'); fwrite($file,"system: $ip connected $time "); fclose($file); //make room for new socket $found_socket = array_search($socket, $changed); unset($changed[$found_socket]); } //loop through all connected sockets foreach ($changed as $changed_socket) { //check for any incomming data while(socket_recv($changed_socket, $buf, 1024, 0) &gt;= 1) { $received_text = unmask($buf); //unmask data $tst_msg = json_decode($received_text); //json decode // if($tst_msg-&gt;type == message) // { // what it says below // elseif($tst_msg-&gt;type == system) // { // do a system update this will be if the user is online or not. // this will need a lot fo work on it to make sure that they are. // } // elseif($tst_msg-&gt;type == users) // { // update user list. // } // elseif($tst_msg-&gt;type == ping) // { // do ping stuff. // } // elseif($tst_msg-&gt;type == pong) // { // do pong stuff // } $user_name = $tst_msg-&gt;name; //sender name $user_message = $tst_msg-&gt;message; //message text $user_color = $tst_msg-&gt;color; //color $user_pic = $tst_msg-&gt;pic; //color $time = time(); //prepare data to be sent to client $response_text = mask(json_encode(array('type'=&gt;'usermsg', 'name'=&gt;$user_name, 'message'=&gt;$user_message, 'color'=&gt;$user_color, 'pic'=&gt;$user_pic))); send_message($response_text); //send data $file = fopen('app/engine/storage/writeable/logs/chat.log','a+'); fwrite($file,"usermsg $user_name : $user_message $time "); fclose($file); break 2; //exist this loop } $buf = @socket_read($changed_socket, 1024, PHP_NORMAL_READ); if ($buf === false) { // check disconnected client // remove client for $clients array $found_socket = array_search($changed_socket, $clients); socket_getpeername($changed_socket, $ip); unset($clients[$found_socket]); $time = time(); //notify all users about disconnected connection $response = mask(json_encode(array('type'=&gt;'system', 'message'=&gt;$ip.' disconnected'))); send_message($response); $file = fopen('app/engine/storage/writeable/logs/chat.log','a+'); fwrite($file,"system $ip disconected $time "); fclose($file); } } } // close the listening socket socket_close($socket); function send_message($msg) { global $clients; foreach($clients as $changed_socket) { @socket_write($changed_socket,$msg,strlen($msg)); } return true; } //Unmask incoming framed message function unmask($text) { $length = ord($text[1]) &amp; 127; if($length == 126) { $masks = substr($text, 4, 4); $data = substr($text, 8); } elseif($length == 127) { $masks = substr($text, 10, 4); $data = substr($text, 14); } else { $masks = substr($text, 2, 4); $data = substr($text, 6); } $text = ""; for ($i = 0; $i &lt; strlen($data); ++$i) { $text .= $data[$i] ^ $masks[$i%4]; } return $text; } //Encode message for transfer to client. function mask($text) { $b1 = 0x80 | (0x1 &amp; 0x0f); $length = strlen($text); if($length &lt;= 125) $header = pack('CC', $b1, $length); elseif($length &gt; 125 &amp;&amp; $length &lt; 65536) $header = pack('CCn', $b1, 126, $length); elseif($length &gt;= 65536) $header = pack('CCNN', $b1, 127, $length); return $header.$text; } //handshake new client. function perform_handshaking($receved_header,$client_conn, $host, $port) { $headers = array(); $lines = preg_split("/ /", $receved_header); foreach($lines as $line) { $line = chop($line); if(preg_match('/\A(\S+): (.*)\z/', $line, $matches)) { $headers[$matches[1]] = $matches[2]; } } $secKey = $headers['Sec-WebSocket-Key']; $secAccept = base64_encode(pack('H*', sha1($secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'))); //hand shaking header $upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake " . "Upgrade: websocket " . "Connection: Upgrade " . "WebSocket-Origin: $host " . "WebSocket-Location: wss://$host:$port/demo/shout.php ". "Sec-WebSocket-Accept:$secAccept "; socket_write($client_conn,$upgrade,strlen($upgrade)); } </code></pre> <p>this works fine in http but does not work in https is there anybody out there that can help with this and make it work on a https system with out having to click something that will allow it after saying unsafe on it?</p> </div>

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

Rabit兔子点云模型.zip

加载点云模型导入PCL点云库,有三种格式的点云兔子,压缩包总共有ply/pcd/xyz三种格式,可以结合我的博客内容练习怎么加载显示

地铁自动售票机(基于FPGA)设计

地铁自动售票机(基于FPGA)设计,在中国电子网找的,感觉不错,分享给大家,来源:中国电子网www.21ic.com

残差网络resnet50的深度学习模型权重文件

残差网络resnet50的深度学习模型权重文件,可作为预训练模型,提升学习效率

C++跨平台实战

C++实战课程,包含windows编程,linux编程,qt编程,基于ffmpeg的音视频编解码直播推流课程,基于opencv的视频处理课程和lua与c++联合编程课程。 如果已经购买了套餐中的某门课程,购买后加入课程群中,联系我退差价。

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

图像处理中著名lena完整图片

这是图像处理中著名的lena女士在花花公子的完整图片,爱美之心人人有,看完这个图片才明白为什么把她用做标准图像......

数字图像处理标准测试图像【附lena全身像原图】

数字图像处理标准测试图像【有彩色,有灰度,附lena全身像原图】

CCNA+HCNA+wireshark抓包综合网工技能提升套餐

本套餐包含思科路由交换CCNA,部分CCNP核心,华为HCNA以及wireshark抓包等类容,旨在培养具有综合能力的网络工程师。

【大总结2】大学两年,写了这篇几十万字的干货总结

本文十天后设置为粉丝可见,喜欢的提前关注 不要白嫖请点赞 不要白嫖请点赞 不要白嫖请点赞 文中提到的书我都有电子版,可以评论邮箱发给你。 文中提到的书我都有电子版,可以评论邮箱发给你。 文中提到的书我都有电子版,可以评论邮箱发给你。 本篇文章应该算是Java后端开发技术栈的,但是大部分是基础知识,所以我觉得对任何方向都是有用的。 1、数据结构 数据结构是计算机存储、...

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例
立即提问