python3实现websocket协议发送二进制数据给客户端的问题。 5C

自己网上找了一个例子,在服务端,我只发送字符串给客户端的时候是正常的,但是当在字符串前面添加int16和int32一起发送回给客户端就报错了:WebSocket connection to 'ws://127.0.0.1:9000/' failed: One or more reserved bits are on: reserved1 = 1, reserved2 = 0, reserved3 = 1
客户端可以正确读取到前面的两个int数据 但是后面的字符串读取数据不全,而且客户端还报错。求大神帮忙解答下。非常感谢。
https://pan.baidu.com/s/1i7kZy8t 源码地址

1个回答

已经解决,是数据写入顺序问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Gorilla Websocket如何将二进制数据解组为JSON?

<div class="post-text" itemprop="text"> <p>I'm following the <a href="https://github.com/gorilla/websocket/tree/master/examples/chat" rel="nofollow noreferrer">chat example</a> provided by gorilla.</p> <p>I still can get to unmarshal the json data sent. Should I do this in the <code>readPump()</code>:</p> <pre><code>func (c *ChatClient) readPump() { defer func() { c.hub.unregisterChan &lt;- c c.conn.Close() }() c.conn.SetReadLimit(maxMessageSize) c.conn.SetReadDeadline(time.Now().Add(pongWait)) c.conn.SetPongHandler(func(string) error { c.conn.SetReadDeadline(time.Now().Add(pongWait)); return nil }) for { _, message, err := c.conn.ReadMessage() // =================MY CODE START============= var comment Comment err = c.conn.ReadJSON(comment) if err != nil { LogErr("readjson()", err) break } err = json.Unmarshal(message, comment) if err != nil { LogErr("readjson()", err) break } // =================MY CODE END============= if err != nil { if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) { LogErr("IsUnexpectedCloseError()", err) } break } message = bytes.TrimSpace(bytes.Replace(message, newline, space, -1)) c.hub.broadcastChan &lt;- message } } </code></pre> <p>or in the <code>writePump()</code></p> <pre><code>func (c *ChatClient) writePump() { ticker := time.NewTicker(pingPeriod) defer func() { ticker.Stop() c.conn.Close() }() for { select { case message, ok := &lt;-c.send: c.conn.SetWriteDeadline(time.Now().Add(writeWait)) // CLOSE if !ok { c.conn.WriteMessage(websocket.CloseMessage, []byte{}) return } w, err := c.conn.NextWriter(websocket.BinaryMessage) if err != nil { LogErr("c.conn.NextWriter", err) return } w.Write(message) // Add queued chat messages to the current websocket message. n := len(c.send) for i := 0; i &lt; n; i++ { w.Write(newline) w.Write(&lt;-c.send) } if err := w.Close(); err != nil { LogErr("w.Close()", err) return } case &lt;-ticker.C: c.conn.SetWriteDeadline(time.Now().Add(writeWait)) if err := c.conn.WriteMessage(websocket.PingMessage, nil); err != nil { LogErr("c.conn.WriteMessage()", err) return } } } } </code></pre> <p>The LogErr() methods don't print any message. Totally lost here.</p> </div>

js如何解析websocket返回的二进制图片数据并且显示在div中

最好是有简单源代码 急需要解决 !!!!!!!!! 麻烦各位大神了!

为什么服务器发过来的二进制数据websocket接收不到?

我用if(e) alert(‘abc’)判断e里面什么也没接受到 但是服务器给我发 字符串 或者base64 都可以接收到这是为什么 难道websocket不支持接收 二进制数据吗 还是 我接收的方式不对。

jmeter webscoket 二进制传输

请教各位大佬:使用jmeter做webscoket协议测试,我这接口是json格式的,但必须要以二进制传输,请问如何将我json转成二进制,以及不影响对数据参数化,()查了网上全是以txt传输的![图片说明](https://img-ask.csdn.net/upload/201908/21/1566371426_694745.png)

java socket 发送二进制流的问题

想通过java socket发送一个二进制流: 0x05 0x03 0x00 0x00 0x00 0x40 0x45 0xbe 说明:这个二进制不代表任何字符串,就是一个命令,服务器端能够识别。 做法是这样的,先申请一块空间赋值,然后发送出去。 char cmd[] = {0x05, 0x03, 0x00, 0x00, 0x00, 0x40, 0x45, 0xbe}; os.print(cmd); os.flush 或者: char cmd[] = {0x05, 0x03, 0x00, 0x00, 0x00, 0x40, 0x45, 0xbe}; String command = new String(cmd); os.print(command); os.flush 用wireshark抓包看的话, 实际发送的数据是: 0x05, 0x03, 0x00, 0x00, 0x00, 0x40, 0x45, 0x3f. 这个是怎么回事儿?有大神知道吗? 我试了下,貌似数据大于0x80的都有这个问题,是不是二进制转化为字符的时候会有特殊处理?如果我真想要发送一个大于0x80的二进制该怎么处理?

websocket发送图片的二进制内容过长,该怎么办呢?

```javascript // 内容html 是前端 富文本编辑框summernote的内容 var html = $('.summernote').summernote('code'); if(html == null || html == ""){ layer.msg("聊天内容不能为空!!",{icon:5}); return false; } var msg = { msgContent: html, postsId: 1 }; // 发送消息到后台服务器 websocket.send(JSON.stringify(msg)); ``` 如果我的富文本编辑框里输入的是文字,则可以发送成功。 如果是选中的图片,则内容html是图片的二进制,并且还比较长,websocket自动关闭了,提示错误是:**发送内容太长**? 有大神做过没有呢,请指教!!!!! 其他的都还好,就是内容太长,websocket连接会被强制关闭。

Go语言如何在多个帧中接收二进制数据

<div class="post-text" itemprop="text"> <p>I successfully sent file data in the <code>form</code> of a frame to the <code>websocket</code>. I can split file data in multiple frames and send to <code>websocket</code>, but i don't know how to receive and merge frames in one data array.</p> <p>I gonna do this for getting progress of sending file to websocket:</p> <pre><code>import ( "golang.org/x/net/websocket" "io/ioutil" ... ... ) ... ... var data []byte err = websocket.Message.Receive(ws, &amp;data) if (err == nil) { ioutil.WriteFile("/home/img.jpg", data, 0644) } </code></pre> </div>

发送带有标题文本的二进制数据

<div class="post-text" itemprop="text"> <p>I am making a service in Golang &amp; Gorilla WebSocket which will convert speech to text, by using Microsoft Bing speech service. For reference </p> <p><a href="https://docs.microsoft.com/en-us/azure/cognitive-services/speech/api-reference-rest/websocketprotocol" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/azure/cognitive-services/speech/api-reference-rest/websocketprotocol</a></p> <p>javascript implementation</p> <p><a href="https://github.com/Azure-Samples/SpeechToText-WebSockets-Javascript" rel="nofollow noreferrer">https://github.com/Azure-Samples/SpeechToText-WebSockets-Javascript</a></p> <p>Here we need to send text data as well as audio data with headers. I am able to send text data but unable to send audio binary data with headers. </p> <p>Please suggest me how to send data</p> <p>Thanks Dinesh Gupta</p> </div>

Swoole将websocket数据从服务器发送到客户端

<div class="post-text" itemprop="text"> <p><strong>Hi all!</strong></p> <p>I use swoole for WebSockets.</p> <p><strong>I create clietn part:</strong></p> <pre><code>&lt;script&gt; var ws = new WebSocket('ws://site.ll:9502/?user=tester01'); ws.onmessage = function(evt) { console.log(evt.data); }; ws.onopen = function (event) { ws.send('test'); } &lt;/script&gt; </code></pre> <p><strong>Create WebServer part:</strong></p> <pre><code>$server = new swoole_websocket_server("127.0.0.1", 9502); $server-&gt;on("start", function ($server) { echo "Swoole http server is started at http://127.0.0.1:9502 "; }); $server-&gt;on('open', function($server, $req) { echo "connection open: {$req-&gt;fd} "; }); $server-&gt;on('message', function($server, $frame) { echo "received message: {$frame-&gt;data} "; $server-&gt;push($frame-&gt;fd, json_encode(["hello", "world"])); }); $server-&gt;on('close', function($server, $fd) { echo "connection close: {$fd} "; }); $server-&gt;start(); </code></pre> <p><strong>Create send from server part:</strong></p> <pre><code>$client = new swoole_client(SWOOLE_SOCK_TCP); if (!$client-&gt;connect('127.0.0.1', 9502, -1)) { exit("connect failed. Error: {$client-&gt;errCode} "); } $client-&gt;send("hello world "); echo $client-&gt;recv(); $client-&gt;close(); </code></pre> <p>I trying to create TCP server inside WebSocket server, just adding next part inside "on start" callback:</p> <pre><code>$server2 = new swoole_server("127.0.0.1", 9503); $server2-&gt;on('connect', function ($server2, $fd){ echo "connection open: {$fd} "; }); $server2-&gt;on('receive', function ($server2, $fd, $from_id, $data) { $server2-&gt;send($fd, "Swoole: {$data}"); $server2-&gt;close($fd); }); $server2-&gt;on('close', function ($server2, $fd) { echo "connection close: {$fd} "; }); $server2-&gt;start(); </code></pre> <p>But Just receive an error: </p> <blockquote> <p>Swoole\Server::__construct(): eventLoop has already been created. unable to create swoole_server.</p> </blockquote> <p>I need to send data from server to client. How can I do this? In workerman library I doing next: <a href="https://github.com/Shkarbatov/WebSocketPHPWorkerman/blob/master/worker.php" rel="nofollow noreferrer">https://github.com/Shkarbatov/WebSocketPHPWorkerman/blob/master/worker.php</a></p> </div>

netty基于http协议实现二进制文件和文本文件的传输;

实现的功能是 netty客户端发送二进制文件(图片、视频等转化成流的形式) netty服务端接收并保存到本地,并响应给客户端另一个文件,并保存下来 (有没有这样的demo ps:有客户端和服务端)

websocket 用c++编写客户端的问题

用MFC CAsyncSocket这个类的socket与服务器connect之后, 我发送了头:Sec-WebSocket-Key,Sec-WebSocket-Version: 13 等内容 等取得了服务器返回的应答:Sec-WebSocket-Accept,Upgrade:Websocket等内容 应该是握手成功了。 之后我在用CAsyncSocket的send发送文本过去服务器就没有返回数据了,服务器也木有向我返回数据。是不是发送的数据要经过编码或者是什么? 请问有websocket 用c++编写客户端 示例代码吗?

python Socket模拟WebSocket接收数据问题

按照WebSocket协议对数据进行解析,解析出来的数据不正确,还是乱码,求大神指导问题出在哪,代码如下: ``` def decode(self,data): if not len(data): return False length = data[1] & 0x7F if length == 0x7E: mask = data[4:8] raw = data[8:] elif length == 0x7F: mask = data[10:14] raw = data[14:] else: mask = data[2:6] raw = data[6:] ret = bytes() for cnt, d in enumerate(raw): ret += bytes((d ^ mask[cnt % 4],)) return ret ``` 抓包工具看到的原始数据为: ``` c1 a8 c8 6f 51 b8 62 39 1e f6 e4 3f e6 ea ff db 65 8a 60 5f 65 08 f8 bf 66 e8 1f 3e 7e f5 01 23 50 b2 92 75 75 9f d2 4a 4a e3 60 b8 53 b8 ``` 实际发送的数据为: ``` {'cap':'1920x1080/0','udid':'90ca2c38'} ``` 调试看到的数据如下图: ![图片说明](https://img-ask.csdn.net/upload/201801/16/1516092073_44289.png)

如何从websockets解析二进制数据?

<div class="post-text" itemprop="text"> <p>I'm trying to parse frames from Websockets. I did it with Fiddler, which shows me binary data from the frame. I need the same result but I need to get it via Javascript or Php (or any other language). I tried to do that with Js</p> <pre><code>var a = new WebSocket("ws://example.com"); a.onopen = function() { console.log("open"); a.send("test"); var b = new Uint8Array([8,6,7,5,3,0,9]); a.send(b.buffer); }; a.onmessage = function(e) { console.log(e.data.toString());}; a.onclose = function() { console.log("closed");}; </code></pre> <p>But I didn't receive any data on "a.onmessage". At this moment I've stucked. To clarify my question one more time. I need simple code example which parses frames from websockets. <a href="http://i.stack.imgur.com/49LoV.png" rel="nofollow">Example of what I'm trying to parse</a></p> <p>Thanks!</p> </div>

python websocket 实时通讯怎么保证用户a 建立连接后, 发送数据到服务端, 服务端返回信息给a ,而不是给b或c, 也就是一对一这种?

python websocket 实时通讯怎么保证用户a 建立连接后, 发送数据到服务端, 服务端返回信息给a ,而不是给b或c, 也就是一对一这种?

基于websocket实现的服务器传递消息给客户端

问题:服务器发送客户端消息时候service接收到,不知道如果传送给第二个activity用一个对话框提示 # 总共两个Activity :第一个登录activity 第二个登录后显示的activity # 在登录成功时候启动了一个service如下 ![登录时候启动service](https://img-ask.csdn.net/upload/201703/15/1489547331_733114.png) ![service中websocketontextmessage()方法](https://img-ask.csdn.net/upload/201703/15/1489547332_221678.png)

websocket频繁发送大数据。

springboot项目,使用websocket持续给前端(vue)发送数据。但是会经常中断,不发数据了,记录在线人数的功能正常,如果有新的登录或者登出,后台正常显示。就是不发数据了,需要重启项目才会发数据。 ``` package com.smart.common.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; /** * @Description: websocket工具类, * flag表示身份标识: * bigScreen:大屏 * backSys:后台系统 */ @ServerEndpoint("/websocket/{flag}") @Component public class WebSocketUtils { private Logger logger = LoggerFactory.getLogger(getClass()); public static final String BIGSCREEN = "bigScreen"; //大屏 public static final String BACKSYS = "backSys"; //后台 //静态变量,用来记录当前在线连接数 private static int onlineCount = 0; //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。 private static CopyOnWriteArraySet<WebSocketUtils> webSocketSet = new CopyOnWriteArraySet<>(); //与某个客户端的连接会话,需要通过它来给客户端发送数据 private Session session; /** * 身份标识 */ private String flag; /** * 连接建立成功调用的方法 * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据 */ @OnOpen public void onOpen(@PathParam("flag") String flag, Session session){ this.session = session; this.flag = flag; webSocketSet.add(this); addOnlineCount(); //在线数加1 logger.info("有新连接加入!当前在线人数为" + getOnlineCount()+",上线用户为:"+this.flag); } /** * 连接关闭调用的方法 */ @OnClose public void onClose(){ webSocketSet.remove(this); subOnlineCount(); //在线数减1 logger.info("有一连接关闭!当前在线人数为" + getOnlineCount()+",下线用户为:"+this.flag); } /** * 收到客户端消息后调用的方法 * @param message 客户端发送过来的消息 * @param session 可选的参数 */ @OnMessage public void onMessage(String message, Session session) { //解析message if(message==null){ session.getAsyncRemote().sendText("发送的消息不能为空"); }else{ } } /** * 发生错误时调用 * @param session * @param error */ @OnError public void onError(Session session, Throwable error){ logger.info("发生错误:"+error.getMessage()); error.printStackTrace(); } /** * 群发消息 * @param message * @throws IOException */ public void sendMessageToFlag(String message){ for (WebSocketUtils ws : webSocketSet){ try{ ws.sendMessage(message); }catch (Exception e){ logger.error("sendMessageToFlag: "+e.toString()); } } } /** * 给指定身份发送消息 * @param message * @param flag * @throws IOException */ public void sendMessageToFlag(String message,String flag){ try{ boolean online = true; for (WebSocketUtils ws : webSocketSet){ if (flag.equals(ws.flag)){ ws.sendMessage(message); online = false; } } if (online){ logger.info(flag+"不在线"); } }catch (Exception e){ logger.error("sendMessageToFlag: "+e.toString()); } } public boolean isonline(){ boolean online = false; for (WebSocketUtils ws : webSocketSet){ if (BIGSCREEN.equals(ws.flag)){ online = true; } } return online; } public void sendMessageToBigScreen(String message){ sendMessageToFlag(message,BIGSCREEN); } public void snedMessage2BackSys(String message){ sendMessageToFlag(message,BACKSYS); } /** * 服务器主动推送消息到客户端 * @param message * @throws IOException */ private void sendMessage(String message) throws IOException { synchronized(this.session){ this.session.getBasicRemote().sendText(message); } System.out.println("发送数据给:"+this.flag+":"+message); } private static synchronized int getOnlineCount() { return onlineCount; } private static synchronized void addOnlineCount() { WebSocketUtils.onlineCount++; } private static synchronized void subOnlineCount() { WebSocketUtils.onlineCount--; } } ```

JAVA-串口或者Socket发送16进制指令数据问题

要发送的16进制数据:“01050000FF008C3A” 使用十六进制的字符串转换成字节数组: ``` public static byte[] hexStrToBinaryStr(String hexString) { hexString = hexString.replaceAll(" ", ""); int len = hexString.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character.digit(hexString.charAt(i+1), 16)); } return data; } ``` 然后将数据发送出去 ``` String hex="01050000FF008C3A"; byte[] b; b=hexStrToBinaryStr(hex); String message = null; while((message = br.readLine()) != null){ for(PrintWriter o: allOut){ System.out.println("服务器收到的消息为:"+message); if(message.equals("01")){ System.out.println("开启浇水阀门"); o.println(b); } } } ``` 使用TCP工具进行接收,收到数据为:“5b 42 40 37 64 61 64 35 32 33 38 0d 0a ” 为什么TCP收到的数据变了呢,不是我要发送的“01050000FF008C3A” 来个高人指点下,多谢啦

websocket如何定时推送随机数到客户端?

用WebSocket,WebWorker和requestAnimationFrame如何实现服务端定时推送随机数到客户端?

Websocket发送到特定客户端而不是广播

<div class="post-text" itemprop="text"> <p>I'm trying to modify the gorilla chat example to to send a message to a specific client instead of broadcast. First I'm storing the specific client in the hub against it's Id.</p> <p><strong>Hub.go</strong></p> <pre><code>type Hub struct { Clients map[int]*Client // Changed this piece to store id (int) Broadcast chan []byte Register chan *Client Unregister chan *Client } func (h *Hub) Run() { for { select { case client := &lt;-h.Register: fmt.Println("hub client register") h.Clients[client.Id] = client case client := &lt;-h.Unregister: fmt.Println("hub client Unregister") fmt.Println(h.Clients[client.Id]) if h.Clients[client.Id] != nil { delete(h.Clients, client.Id) close(client.Send) } case message := &lt;-h.Broadcast: fmt.Println("to send to a specific client", string(message)) } } } </code></pre> <p><strong>Client</strong></p> <p>I've added a field Id int to Client to know which client has sent a message</p> <pre><code>type Client struct { Hub *Hub Conn *websocket.Conn Send chan []byte Id int // Id of the client, } func (c *Client) readPump() { defer func() { c.Hub.Unregister &lt;- c c.Conn.Close() }() c.Conn.SetReadLimit(maxMessageSize) c.Conn.SetReadDeadline(time.Now().Add(pongWait)) c.Conn.SetPongHandler(func(string) error { c.Conn.SetReadDeadline(time.Now().Add(pongWait)); return nil }) for { _, message, err := c.Conn.ReadMessage() if err != nil { if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway) { log.Printf("error: %v", err) } break } message = bytes.TrimSpace(bytes.Replace(message, newline, space, -1)) fmt.Println("client read message", string(message), "from", c.Id) // {"to":512,"message":"Hi there."} c.Hub.Broadcast &lt;- message } } </code></pre> <p>What are the next steps to take to be able to send the message to a specific client instead of broadcasting.</p> <p>the message itself is coming as JSON from the client specifying 'to' indicating who to send and what message to send.</p> <pre><code>{"to":512,"message":"Hi there."} </code></pre> </div>

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

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

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

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

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

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

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

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

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答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

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

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

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<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>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

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

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

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

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

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

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

太惨了,面试又被吊打

相关热词 c#中如何设置提交按钮 c#帮助怎么用 c# 读取合并单元格的值 c#带阻程序 c# 替换span内容 c# rpc c#控制台点阵字输出 c#do while循环 c#调用dll多线程 c#找出两个集合不同的
立即提问