如何用python和服务器建立websocket连接

谢谢大家,找了很多,没有例子。无法返回正确的结果,求帮助或提供思考和相关文档,感激不尽

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python websocket 实时通讯怎么保证用户a 建立连接后, 发送数据到服务端, 服务端返回信息给a ,而不是给b或c, 也就是一对一这种?

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

处理多个WebSocket连接

<div class="post-text" itemprop="text"> <p>I'm trying to create a program that will connect to several servers though gorilla web-sockets. I currently have a program that will iterate over a list of server addresses and create a new goroutine that will create its own Websocket.conn and handle reading and writing. </p> <p>The problem is that every time a new goroutine is created the previous goroutines are blocked and only the last one can continue. I believe this is because the gorilla websocket library is blocking each gorotutine, but I might be mistaken.</p> <p>I have tried putting a timer in the server list iterator and each goroutine will work perfectly but then the moment a new goroutine is made with another address the previous goroutine is blocked.</p> <p>The relevant bits of my code:</p> <p>In my <code>main.go</code></p> <pre class="lang-golang prettyprint-override"><code>for _, server := range servers { go control(ctx, server, port) } </code></pre> <p>In <code>control()</code></p> <pre class="lang-golang prettyprint-override"><code> func control(ctx context.Context, server, port string) { url := url.URL{ Scheme: "ws", Host: server + ":" + port, Path: "", } conn, _, err := websocket.DefaultDialer.Dial(url.String(), nil) if err != nil { panic(err) } defer conn.Close() go sendHandler(ctx, conn) go readHandler(ctx, conn) } readHandler(ctx context.Context, conn *websocket.Con) { for { _, p, err := conn.ReadMessage(); if err != nil { panic(err) } select { case &lt;-ctx.Done(): goto TERM default: // do nothing } } TERM: // do termination } sendHandler(ctx context.Context, conn *websocket.Con) { for _, msg := range msges { err = conn.WriteMessage(websocket.TextMessage, msg) if err != nil { panic(err) } } &lt;-ctx.Done() } </code></pre> <p>I removed the parts where I add waitgroups and other unnecessary pieces of code.</p> <p>So what I expect is for there to be 3n goroutines running (where n is the number of servers) without blocking but right now I see only 3 goroutines running which are the ones called by the last iteration of the server list.</p> <p>Thanks!</p> <p>EDIT 14/06/2019:</p> <p>I spent some time making a small working example and in the example the bug did not occur - none of the threads blocked each other. I'm still unsure what was causing it but here is my small working example:</p> <p><code>main.go</code></p> <pre class="lang-golang prettyprint-override"><code>package main import ( "context" "fmt" "os" "time" "os/signal" "syscall" "sync" "net/url" "github.com/gorilla/websocket" ) func main() { servers := []string{"5555","5556", "5557"} comms := make(chan os.Signal, 1) signal.Notify(comms, os.Interrupt, syscall.SIGTERM) ctx := context.Background() ctx, cancel := context.WithCancel(ctx) var wg sync.WaitGroup for _, server := range servers { wg.Add(1) go control(server, ctx, &amp;wg) } &lt;-comms cancel() wg.Wait() } func control(server string, ctx context.Context, wg *sync.WaitGroup) { fmt.Printf("Started control for %s ", server) url := url.URL { Scheme: "ws", Host: "0.0.0.0" + ":" + server, Path: "", } conn, _, err := websocket.DefaultDialer.Dial(url.String(), nil) if err != nil { panic(err) } defer conn.Close() var localwg sync.WaitGroup localwg.Add(1) go sendHandler(ctx, conn, &amp;localwg, server) localwg.Add(1) go readHandler(ctx, conn, &amp;localwg, server) &lt;- ctx.Done() localwg.Wait() wg.Done() return } func sendHandler(ctx context.Context, conn *websocket.Conn, wg *sync.WaitGroup, server string) { for i := 0; i &lt; 50; i++ { err := conn.WriteMessage(websocket.TextMessage, []byte("ping")) if err != nil { panic(err) } fmt.Printf("sent msg to %s ", server) time.Sleep(1 * time.Second) } &lt;- ctx.Done() wg.Done() } func readHandler(ctx context.Context, conn *websocket.Conn, wg *sync.WaitGroup, server string) { for { select { case &lt;- ctx.Done(): wg.Done() return default: _, p, err := conn.ReadMessage() if err != nil { wg.Done() fmt.Println("done") } fmt.Printf("Got [%s] from %s ", string(p), server) } } } </code></pre> <p>I tested it with dpallot's <a href="https://github.com/dpallot/simple-websocket-server" rel="nofollow noreferrer">simple-websocket-server</a> by a server on 5555, 5556 and 5557 respectively.</p> </div>

如何开发使用ssl的websocket服务端?

我要开发一个交互性很强的微信小程序,但是他需要带有ssl的websocket,服务器用的是Linux系统,大概要保证100人同时在线。 目前在纠结是选择java还是python?最关键的是如何配置好SSL?

python tornado.websocket 服务端 向客户端发送消息 write_message 报错 求大神呀呀呀

``` ```class htmlHandel(RequestHandler): def get(self, url): if ("%s.html" % (url,)) in os.listdir("./html"): self.render(os.path.abspath('./html/%s.html' % (url,))) else: self.render(os.path.abspath('./html/404.html')) class MyWebSocketHandler(WebSocketHandler): # 保存连接的用户,用于后续推送消息 user = [] # 判断源origin,对于符合条件的请求源允许链接 def check_origin(self, origin): return True @classmethod def open(self): print("有人连接进来") # 打开连接时将用户保存到connect_users中 self.user.append(self) for user in self.user: user.write_message("我是服务端") @classmethod def on_message(self, message): print('收到的信息为:' + message) @classmethod def on_close(self): print("WebSocket closed") # 关闭连接时将用户从connect_users中移除 self.user.remove(self) def check_origin(self, origin): # 此处用于跨域访问 return True @classmethod def send_demand_updates(cls, message): # 使用@classmethod可以使类方法在调用的时候不用进行实例化 # 给所有用户推送消息(此处可以根据需要,修改为给指定用户进行推送消息) for user in cls.user: user.write_message(message) def start_server(port): # 创建启动项 启动项负责配置映射规则 app = tornado.web.Application([ (r'/api', MyWebSocketHandler), # (r'/css/(.*.css)', tornado.web.StaticFileHandler, {"path": os.path.abspath("./static/css")}), # 映射本地文件 (r'/js/(.*.*)', tornado.web.StaticFileHandler, {"path": os.path.abspath("./static/js")}), # (r'/img/(.*)', tornado.web.StaticFileHandler, {"path": os.path.abspath("./static/img")}), (r'/(.*)', htmlHandel), ], debug=True) host = "localhost" print("服务已启动 http://%s:%s" % (host, port)) server = HTTPServer(app, max_buffer_size=10240000, max_body_size=10240000) # 绑定端口 server.bind(port) server.start() # 启动服务 tornado.ioloop.IOLoop.instance().start() if __name__ == '__main__': start_server(8000) ![报错信息](https://img-ask.csdn.net/upload/202006/03/1591178481_825692.png)

webSocket客户端报302,不知道哪里写错了。

请看下面代码: ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!doctype html> <html> <head> <meta charset="UTF-8" content="text/html"> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>基于Java服务端消息主动推送技术</title> <style type="text/css"> *{ margin:0; padding:0; } body{ background:url("image/bg.jpg") no-repeat; background-size:cover; } .chatbox{ width:700px; height:500px; margin:100px auto; font-size:12px; font-family:"微软雅黑"; color:#666; } h1{ text-align:center; font-size:30px; color:green; text-shadow:5px 10px 10px #111; } .chatbox .c_info{ text-align:left; line-height:46px; } .inputText{ height:30px; border:0; outline:none; text-indent:1em; font-size:14px; font-family:"微软雅黑"; color:#61B52D; border: 1px solid #61B52D; } .btn{ width:80px; text-indent:0; background:#9AD02D; color:#fff; margin-left: 10px; } .chatbox .c_message{ width:97%; height:300px; overflow:auto; border:1px solid yellow; font-size:24px; color:#9DA791; padding-left:20px; box-shadow:2px 10px 10px #111; /* background: #EAF9BE; */ } .chatbox .c_send{ margin-top: 10px; } </style> </head> <body> <div class="chatbox"> <h1>基于Java服务端消息主动推送技术</h1> <div class="c_info"> 服务器地址:<input type="text" value="localhost:8080/webSocket" id="addr" class="inputText" style="width:350px"/> 用户名:<input type="text" value="Yinwq" id="userName" class="inputText"/> <input type="button" id="con" class="inputText btn" value="连接" /> </div> <div class="c_message"> </div> <div class="c_send"> <input type="text" id="sendText" class="inputText" style="width:592px" /> <input type="button" id="sendBtn" class="inputText btn" value="发送" /> </div> </div> </body> <!-- 引入jquery类库 --> <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script> <script type="text/javascript"> var connected = false; var ws; $(function(){ $(".c_send").hide(); //1.判断浏览器是否支持webSocket if(window.WebSocket || window.MozWebSocket){ printMsg("您的浏览器支持WebSocket,您可以尝试连接到聊天服务器!" , "OK"); }else{ printMsg("您的浏览器不支持WebSocket,您可以换其他浏览器!" , "ERROR"); $("#con").attr("disabled","true"); } }) //打印信息 function printMsg(msg,msgType){ if(msgType == "OK"){ msg = "<span style='color:green'>"+msg+"</span>"; } if(msgType == "ERROR"){ msg = "<span style='color:red'>"+msg+"</span>" } $(".c_message").append(msg + "<br/>"); } //点击连接的时候触发事件 $("#con").click(function(){ if(connected){ //已连接 ws.send("["+$("#userName").val()+"]离开了聊天室"); connected = false; ws.close(); }else{//没有连接 printMsg("正在准备连接,请稍等!", ""); var url = "ws://"+ $("#addr").val(); if("WebSocket" in window){ //ws = new WebSocket(url); ws = new WebSocket('ws://localhost:8080/webSocket'); }else if ("MozWebSocket" in window) { ws = new MozWebSocket(url); } //连接成功后设置连接状态 connected = true; $("#con").val("断开"); //注册事件 ws.onopen = function(event){ openWs(event); }; ws.onmessage = function(event){ msgWs(event); }; ws.onclose = function(event){ closeWs(event); }; ws.onerror = function(event){ errorWs(event); }; } }); //打开socket function openWs(event){ printMsg("连接已建立...!", "OK"); //建立连接的时候 ws.send("["+$("#userName")+"]进入了聊天室"); $(".c_send").show(); }; //接收消息 function msgWs(event){ printMsg(evnet.data); }; //关闭连接 function closeWs(event){ $("#con").val("连接"); //隐藏发送div $(".c_send").hide(); }; //产生错误 function errorWs(event){ printMsg("与服务器连接错误.." , "ERROR"); }; //点击发送触发事件 $("#sendBtn").click(function(){ //获取发送内容 var text = $("#sendText").val(); ws.send($("#userName").val() + "说:" + text); $("#sendText").val("");//清空发送框 }); </script> </html> ``` 浏览器报错 ![图片说明](https://img-ask.csdn.net/upload/201601/11/1452477841_505407.png) ![图片说明](https://img-ask.csdn.net/upload/201601/11/1452477853_561170.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--; } } ```

websocket前端以1M/s的速度发送数据给后端

在做活体检测的项目,前端一直采集头像发送给后端处理, 采用websocket协议,前端以1M/s的速度发送图片的base64码给后端这种方式, websocket建立连接开始发送数据,大概几秒后,websocket就会断开连接, 如果此时再刷新页面尝试重新建立连接,tomcat有时会宕机。

b/s中,websocket心跳,断开重启服务器后,多个用户重连,为什么后台open方法接收的用户ID参数是相同的?

如图,重连发起连接时,session是不一样的,线程不是同一个,且确定不是一个页面发起的,ID是不一样的,为什么到后台就一样了,求大神一解 ![图片说明](https://img-ask.csdn.net/upload/201810/11/1539243550_593857.png) ![图片说明](https://img-ask.csdn.net/upload/201810/11/1539243558_587508.png) ![图片说明](https://img-ask.csdn.net/upload/201810/11/1539243565_183855.png) ![图片说明](https://img-ask.csdn.net/upload/201810/11/1539243585_904419.png) ![图片说明](https://img-ask.csdn.net/upload/201810/11/1539243611_632117.png) 如图,重连发起连接时,session是不一样的,线程不是同一个,且确定不是一个页面发起的,ID是不一样的,为什么到后台就一样了,求大神一解

关于socket Tcp客户端连接超时的问题

![图片说明](https://img-ask.csdn.net/upload/201708/11/1502431558_962329.png) 简单描述一下需求:我这里需要通过socket客户端长连接一直不停的往服务器发送数据,我这边也对socket就行判断了,如果连接不上就关闭再重新连接,过几个小时就会出现连接超时的情况,大致就是这样,求大神指教。。。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

网上很多的文章和帖子中在介绍秒杀系统时,说是在下单时使用异步削峰来进行一些限流操作,那都是在扯淡! 因为下单操作在整个秒杀系统的流程中属于比较靠后的操作了,限流操作一定要前置处理,在秒杀业务后面的流程中做限流操作是没啥卵用的。

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

又一起程序员被抓事件

就在昨天互联网又发生一起让人心酸的程序员犯罪事件,著名的百度不限速下载软件 Pandownload PC 版作者被警方抓获。案件大致是这样的:软件的作者不仅非法盗取用户数据,还在QQ群进...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

Intellij IDEA 美化指南

经常有人问我,你的 IDEA 配色哪里搞的,我会告诉他我自己改的。作为生产力工具,不但要顺手而且更要顺眼。这样才能快乐编码,甚至降低 BUG 率。上次分享了一些 IDEA 有用的插件,反...

【相亲】96年程序员小哥第一次相亲,还没开始就结束了

颜值有点高,条件有点好

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

一图看完本文 一、 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。 二、 TCP/IP 基础 1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为...

腾讯面试题: 百度搜索为什么那么快?

我还记得去年面腾讯时,面试官最后一个问题是:百度/google的搜索为什么那么快? 这个问题我懵了,我从来没想过,搜素引擎的原理是什么 然后我回答:百度爬取了各个网站的信息,然后进行排序,当输入关键词的时候进行文档比对……巴拉巴拉 面试官:这不是我想要的答案 我内心 这个问题我一直耿耿于怀,终于今天,我把他写出来,以后再问,我直接把这篇文章甩给他!!! 两个字:倒排,将贯穿整篇文章,也是面试官...

你怎么看欧阳娜娜空降阿里p8?

前段时间 欧阳娜娜空降阿里P8被骂上热搜 有网友调侃道: 名牌大学毕业的研究生 要在阿里没日没夜、加班加点、 全年无休奋斗5年,才可能有机会 和20岁的欧阳娜娜一起喝下午茶…… 本来嘛,大厂✖明星的营销无可厚非 那是什么让撸代码N年的程序员愤愤不平呢? 还不是因为升到P8真的太难了! 这是很多阿里人甚至互联网人遥不可及的梦想! 阿里P8到底有多牛? 根据知乎大V@半佛仙人透露的情况: 阿里P8基本上要求研究生 5 年以上经验,本科 7 年以上经验; P8 一般去小公司就是各种 O,一般公司(非国企、.

程序员因没转发公司内容,被领导扣500,辞职后:加了三行代码

现如今,程序员在一二线城市可谓是非常的抢手,毕竟年薪那么多,一般在工作了几年之后,程序员想要攒到一套房子的首付是不成问题的,所以一些大龄的女青年在相亲的时候要把程序员当成了首选。但表面上看起来风光的程序员,背地里也受了非常多的委屈,最近有一名程序员没有转发公司的内容到朋友圈被领导扣了500块,当他辞职了之后,却非常淡定。 从个这个帖子中,我们可以看出这名程序员的情绪还是比较激动的,因为没有转发公司的内容到朋友圈,就要被罚款500块,这是非常不合理,换做是别人也不肯接受,而且三次没有转发就要被劝退,这是什么

为什么中国80%的程序员面试造大炮,工作扭螺丝,复制粘贴代码一把梭?

面试造大炮,工作扭螺丝,复制粘贴代码一把梭! 最近无聊和同事无意间聊天,开个玩笑,说我们写的什么代码最多,一位同事说我大部分都是复制粘贴,写什么代码?“我们都是代码的搬运工,都是在重复的写着不同的代码”,哈哈,当时还没有反应过来。 后面想想,其实也是事实,这个玩笑差点毁了我的三观,下面我们简单聊聊。 首先从源头来说,程序员使用语言开发,大部分语言都是相同的,只要熟悉的语言的语法知识,就能做出相应的功能,而很多的功能都是相似的,大致相同。 比如:去年开发了一个社交类项目,里面有用户...

Python垃圾回收机制

Python垃圾回收 引用计数器为主 标记清除和分代回收为辅 + 缓存机制 1. 引用计数器 1.1 环状双向链表 refchain 在python程序中创建的任何对象都会放在refchain链表中。 #define PyObject_HEAD PyObject ob_base; #define PyObject_VAR_HEAD PyVarObject ob_base; // 宏定义,包含 上一个、下一个,用于构造双向链表用。(放到refchain链表中时要用到) #define _PyObj

专升本,学历毁了我的一生!

今天给大家带来一段访谈录音。 这位小伙伴是08年,专科毕业,后来,专升本。 但因为本科不是统招,在就业和跳槽中屡屡碰壁,现在从业12年,仍然还在受学历的影响。 希望通过他的经历,能给同是专科学历的同学一些启发。 视频版: 五月二号早上,B站视频版已经发了,大家可以在B站搜索【启舰杂谈】,去看啦。 文章版: 启舰: 今天我们就主要说的下,你的历程吧。主要是想了解一下,学历在整个职业生涯里的影响 嘉宾: 我觉得现在,包括很多人也有这种想法,包括现在的专科生,他们一开始不知道这个东西.

被裁员了,哎

在一个阳光明媚的下午,突然接到被裁员的通知。 人事告诉我,因为疫情关系,公司也是没办法,两个选择一个降薪一个裁员。当时心里就想降薪不就是变相裁员吗,那我还是识趣的走吧。不过没有裁员补贴,没有想象中的n+1,好心伤。看来有能力的朋友们还是要去大厂工作的,至少被裁了也有丰厚的补贴啊,呜呜呜呜呜呜............. 作为一个咸鱼一样的女程序员,突然感到很迷茫,我是要在软件开发行业继续走下去,还是要转行另谋钱途呢,这个困扰让我不能静心做接下来的守卫工作,那就写点什么吧。 程序员要经常学习新得技术,嗯,这

python实用的几个脚本程序(自己在用)

文章目录一、简介二、 重点1. 数据集划分训练集与测试集1.1 数据集为视频帧文件夹(文件夹划分)1.2 数据集为视频文件(文件划分)2. label的重建2.1 原label读取2.2 新label的建立 一、简介 本文主要是自己近期在做毕业设计(连续手语识别)时候写的几个python脚本,用于处理数据集的。记录一下。 二、 重点 本文撰写采用Windows操作系统,如果是Linux记得修改字符串分割方式及目录层数多加一层。 1. 数据集划分训练集与测试集 1.1 数据集为视频帧文件夹(文件夹划分) tr

29.HTML+CSS3 实现酷炫 Loading 特效

效果 (源码网盘地址在最后) 视频演示 「前端编程实战 29」HTML+CSS3 实现发光复选框网页特效 视频地址一:https://www.bilibili.com/video/BV1dK411W7De/ 视频地址二:https://www.ixigua.com/i6825524219757986318/ 源码 index.html &lt;!DOCTYPE html&gt; &lt

墙裂推荐:GitHub 上这个开源项目可以让你在短短几分钟之内了解一门技术

作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个在划水界鼎鼎有名的蒟蒻… 不知道是不是巧合,最近有好几个读者和我讲,想转行学编程,但是不知道应该学哪个语言,要我给点建议。其实作为一个及其讨厌对别人的发展指手画脚的人,我一般只会说一些我知道的,尽量以一个中立的身份去阐述一些优劣,剩下的让他们自己去判断。 虽然我很想说你们来学 Python 呗… 当然对初学者来说自己去判断是一件很难的事。毕竟未知让人恐惧,在尝试进入到一个以前没有概念的领域里,恐..

为什么招聘程序员都只要本科生,不要专科生?网友答案很现实!

由于互联网的飞速发展大家可能已经发现,最近几年来的各种招聘,很多岗位都要求本科以上学历,只有小型的创业互联网公司艰苦的工作环境,才有部分专科的机会 。这对于专科生来说也是十分悲催的一件事,看看下面的这位HR的经历也着实郁闷,怎么破? 网友评论: 也有网友这么评论道: 网友一:选择本科和专科还得看公司需求,两者能力相当优先本科,选择能力出众者 网友二:要是我坚决选择专科生,其实专科生职业技能也是不会比本科差的 网友三:其实本科有些甚至不如专科,学历不能决定一切!!! 网友四:选择本科生把,各方面比较优

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问