java Socket客户端实时接受信息回显页面

java Socket客户端实时接受信息并实时显示在页面,实现方式逻辑大概是怎么样得,
思路大概是怎么样得,如游戏(网络)控制台输出日志那种
目前做到接受服务端反馈数据实时显示在控制台,现在是以每行接受得,所以有个弊端,服务端同时输出几段,只能接受到前面第一段,不过这个应该好修复

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java socket 客户端异常中断问题
java socket 问题,服务器端可以接收客户端数据,但是,当客户端断电在连上时,服务器端收不到客户端的数据,除非重启服务器端才可以继续收到数据。我想让:及时客户端异常中断,随后在向服务器端发送数据的时候,服务器端不需要重启也能继续收到数据
WebSocket客户端与Java的Socket服务器通信
客户端使用websocket,服务器使用Java Socket。客户端经过new webSocket(utl)之后,服务器端可以收到请求头,但是客户端的webSocket.readyState一直是0,没有连接成功,这个是因为什么呢?是不是因为服务器端不可以用Java Socket
java socket客户端和Python socket客户端的不同?高C币!!
我们接的项目有一个java写的server,我只有它的文档,并且用java已经实现,但是现在要为 python实现,用java实现的代码: ``` public static void main(String[] args) throws WindException, SendException, RecvException{ String host="172.22.128.16"; int port=6001; TcpComm tcp = new TcpComm(true); try { tcp.call(host,port); tcp.setTimeOut(30); String msg="POF001|S2B024|01|0033596105||"; byte[] req = msg.getBytes(); tcp.sendMsg(req); byte[] ans = tcp.recvBytesMsg(); System.out.println(ans); } catch (CallException e) { e.printStackTrace(); } ``` 接口就是使用socket发送一个定制的代表内容长度的报文头和内容,sendMsg方法: ``` public void sendMsg(byte[] b) throws SendException { try { OutputStream out = sock.getOutputStream(); if (hasAtrHead) { byte[] sbt = short2Byte((short) b.length, true); out.write(head); out.write(sbt); } out.write(b); out.flush(); } ``` 其中hasAtrrHead使用的是true,定制报文头的方法: ``` static public byte[] short2Byte(short value, boolean order) { byte[] bt = new byte[2]; if (order) { // true 高8位 存放在tb[0] bt[0] = (byte) (value >> 8 & 0xff); bt[1] = (byte) (value & 0xff); } else { bt[1] = (byte) (value >> 8 & 0xff); bt[0] = (byte) (value & 0xff); } return bt; } ``` 使用以上java代码运行没问题,但是当我用python写的时候,发送的socket没有被server接收到,应该是发送的格式不对,python代码: ``` #-*- coding:GBK -*- import socket class Comm(object): def heads(self,length): bt=bytearray() bt.append(length >> 8 & 0xff) bt.append(length & 0xff) return bt def client(self): HOST='172.22.128.16' PORT=6001 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((HOST,PORT)) while 1: content='POF001|F2B107|01|3061009458||' length=len(content) head=self.heads(length) content=bytearray(content) s.send(head) s.send(content) data=s.recv(2048) s.close() if __name__=='__main__': a=Comm() a.client() ``` 有人能告诉我到底是哪里不同吗?折腾两天了,求解答!!!
java Socket 在客户端断开之后才可以接收到客户端发送的消息!
``` //客户端 public class Test { private static boolean is = true; public static void main(String[] args) throws IOException, InterruptedException { Socket socket = new Socket("127.0.0.1", 6677); System.out.println("链接成功"); Scanner scanner = new Scanner(System.in); while (is) { System.out.println("请输入!!!"); int n = scanner.nextInt(); switch (n) { case 1: OutputStream os = socket.getOutputStream(); os.write("hello world".getBytes()); os.flush(); // os.close(); // socket.close(); // IoUtil.IoClose(os); System.out.println("发送成功"); break; case 2: System.out.println("循环关闭"); is = false; break; default: is = false; System.out.println("输入错误---循环关闭"); break; } } } } ``` ``` //服务器端 太多了 就贴一部分 @Override public void run() { MessageThread messageThread = null; InputStream iss = null; InputStreamReader isr = null; BufferedReader br = null; while (is) { try { // 监听 Socket socket = serverSocket.accept(); System.out.println("链接成功"); iss = socket.getInputStream(); isr = new InputStreamReader(iss); br = new BufferedReader(isr); String len; StringBuffer sb = new StringBuffer(); while ((len = br.readLine()) != null) { sb.append(len); } System.out.println(sb.toString()); // iss.close(); // IoUtil.IoClose(br, isr, iss); SocketMap.put(sb.toString(), socket); /** * 开启接受消息的线程 */ messageThread = new MessageThread(socket); messageThread.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); messageThread.setFlag(false); } } ``` 大致代码就这些 问题出在 socket 可以链接成功 但是 客户端发送的消息要等 客户端断开链接之后才能接收到 或者 关闭客户端的输出流也可以! C#为客户端的时候也一样!
java socket 服务端接收客户端数据无法停止
客户端以byte流的形式发送一张图片给服务端,客户端传送完毕,并且在控制台输出"发送完毕"四个字出现乱码情况,服务端已经接收完数据却还在每隔大概1秒接收10byte的数据,不会停下来 服务端代码: private RequestController(Connection con,Vector<Socket> sockets,String Usr_Nub,String sUsr_Nub,String Message,String str_numOfpic) //#5 { if (Online_Handle_sql.IfOnline(con,sUsr_Nub)) { Socket sSocket=this.findSocket(con,sockets,sUsr_Nub); try { DataOutputStream sout=new DataOutputStream(sSocket.getOutputStream()); synchronized (sout) { sout.writeUTF("#8 "+Usr_Nub+" "+Message+" "+str_numOfpic); DataInputStream in=new DataInputStream(this.findSocket(con,sockets,Usr_Nub).getInputStream()); byte[] buffer=new byte[15000]; for (int i=0;i<Integer.parseInt(str_numOfpic);i++) { System.out.println("["); int readlen=0; **while ((readlen=in.read(buffer))!=-1) { sout.write(buffer,0,readlen); System.out.println(readlen); }** System.out.println("|"); sout.writeInt(in.readInt()); System.out.println("]"); } } } catch (IOException e) { } } else { Online_Handle_sql.addRequestUpdate(con,sUsr_Nub,"#8 "+Usr_Nub+" "+Message); } } 客户端: for (Entry<String,Integer> entry : pic_path_pos.entrySet()) { UsrChatFrame.this.appendPic(entry.getKey(),UsrChatFrame.this.MessagePanedoc.getLength()-sendMsgPaneLen+entry.getValue()-numOfpic-1); //本地显示发送的图片 FileInputStream fin=new FileInputStream(entry.getKey()); byte[] buffer=new byte[15000]; int readlen=0; ** while ((readlen=fin.read(buffer))!=-1) { out.write(buffer,0,readlen); System.out.println(readlen); }** out.flush(); out.writeInt(entry.getValue()); System.out.println(entry.getValue()); fin.close(); } 没有想明白是什么原因
java socket 通信 服务端接收的文件大于客户端发出的文件 是什么鬼
//服务端 package Socket; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.Socket; public class Server2User extends Thread{ private Socket socket; private InputStream is; private BufferedInputStream bis; private FileOutputStream fos; private File file; private byte name[] = new byte[1024]; private byte transport[] = new byte[1024]; private File path; public Server2User(Socket socket) { this.socket= socket; } public void run() { try { is = socket.getInputStream(); bis= new BufferedInputStream(is); bis.read(name); String filename = new String(name); filename = filename.trim(); System.out.println("得到文件名"+filename); path = this.createFile(filename); System.out.println(path.getName()); int length; fos = new FileOutputStream(path); int i = 0; while((length=bis.read(transport))!=-1) { this.write2file(transport); i++; } this.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void write2file(byte[] transport) { try { fos.write(transport); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private File createFile(String filename) { try { file = new File("f:/test/"+filename); file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return file; } private void close() { try { if(is!=null) is.close(); if(bis!=null) bis.close(); if(fos!=null) fos.close(); if(is!=null) is.close(); if(socket!=null) socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //客户端 package Socket; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.io.Reader; import java.net.Socket; import java.net.UnknownHostException; public class ClientSocket_upload { private Socket socket; private OutputStream os; private BufferedOutputStream bos; private String path; private FileInputStream fis; private File file; public ClientSocket_upload(String path) { this.path = path; } public void uploadfile(){ try { //1.创建客户端Socket,指定服务器地址和端口 socket= new Socket("10.104.77.108", 1080); //2.获取输出流,向服务器端发送信息 os = socket.getOutputStream();//字节输出流 bos = new BufferedOutputStream(os); file = new File(path); fis= new FileInputStream(file); String name = file.getName(); byte[] temp = name.getBytes(); byte[] bname = new byte[1024]; byte[] by = new byte[1024]; for(int i = 0 ;i<=bname.length-1;i++) { if(i<=temp.length-1) { bname[i] = temp[i]; } else { bname[i]=0; } } bos.write(bname); while((fis.read(by))!=-1) { bos.write(by); } fis.close(); bos.close(); os.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
java socket服务器接收不到客户端发来的消息
package socket; public class MySeverSocket { public static void main(String[] args) { new ServerListener().start(); } } **************************************** package socket; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JOptionPane; public class ServerListener extends Thread { public void run (){ try { ServerSocket serverSocket = new ServerSocket(55555); while (true){ Socket socket = serverSocket.accept(); JOptionPane.showMessageDialog(null, "有客户端连接到了55555端口"); ChatSocket cs = new ChatSocket(socket); cs.start(); ChatManager.getChatManager().add(cs); } } catch (IOException e) { e.printStackTrace(); } } } *************************************** package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.Socket; public class ChatSocket extends Thread { Socket socket; public ChatSocket(Socket s) { this.socket = s; } public void out(String out) { try { socket.getOutputStream().write(out.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); String line = null; while ((line = br.readLine()) != null) { ChatManager.getChatManager().publich(this, line); } br.close(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ******************************************************** package socket; import java.util.Vector; public class ChatManager { private ChatManager() {} private static final ChatManager cm = new ChatManager(); public static ChatManager getChatManager() { return cm; } Vector<ChatSocket> vector = new Vector<ChatSocket>(); public void add(ChatSocket cs) { vector.add(cs); } public void publich(ChatSocket cs,String out) { for(int i = 0;i<vector.size();i++){ ChatSocket csChatSocket = vector.get(i); if (!cs.equals(csChatSocket)) { csChatSocket.out(out); } } } } 安卓客户端连接与发送消息方法 public void connect(){ final AsyncTask<Void,String,Void> read = new AsyncTask<Void, String, Void>() { String iptext = ip.getText().toString(); @Override protected Void doInBackground(Void... params) { try { socket = new Socket(iptext,55555); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); publishProgress("@success"); } catch (IOException e) { Toast.makeText(MainActivity.this,"连接失败",Toast.LENGTH_SHORT).show(); e.printStackTrace(); } try { String line; while ((line = reader.readLine()) != null){ publishProgress(line); } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onProgressUpdate(String... values) { if (values[0].equals("@success")){ Toast.makeText(MainActivity.this,"连接成功",Toast.LENGTH_SHORT).show(); } text.append("别人说"+values[0]+"\n"); super.onProgressUpdate(values); } }; read.execute(); } public void send(){ try { // text.append("我说:"+editText.getText().toString()+"\n"); writer.write(editText.getText().toString()+"\n"); writer.flush(); editText.setText(""); } catch (IOException e) { e.printStackTrace(); } }
java socket 在外网和内网传输问题
今天写了一个java Socket的客户端和服务器端程序,在局域网环境中,客户端和服务端能够互相发送数据. 后来想把服务端的ip用Nat123映射出去,用客户端连接服务端映射出来的域名和端口结果服务端能接收客户端的数据,但客户端接收不了服务端的数据,本人百思不得其解,想请高手帮忙解答,本人感激不尽.
java客户端 c#服务端(同一台电脑)进行socket通讯 客户端发送文本消息到服务端
socket连接部分可以省略 只要客户端的发送数据部分和服务端的接收数据部分 我主要不知道java和C#的字符集以及该用什么方法比较好
java socket 在内网和外网传输问题
今天写了一个java Socket的客户端和服务器端程序,在局域网环境中,客户端和服务端能够互相发送数据. 后来想把服务端的ip用Nat123映射出去,用客户端连接服务端映射出来的域名和端口结果服务端能接收客户端的数据,但客户端接收不了服务端的数据,本人百思不得其解,想请高手帮忙解答,本人感激不尽
java socket客户端连接基于netty4的服务端连接成功后如何接受到服务的响应数据?
在client连接netty4服务器后,能够发送数据,并且服务器也能够接受到,但是返回消息时,client无法接收; 在使用while(true)后只能持续发送消息,无法读取服务端返回的消息。
java socket tcp 和网络映射问题
我用java socket 写了个客户端和服务端程序,局域网测试没有问题-客户端和服务器端能互发数据. 于是想用花生壳端口映射服务端, 然后用客户端连接发现如下问题 1.服务端能收到客户端的信息,但客户端不能收到服务端信息 ----说明网络没问题 2.我把服务端的接受代码删去让他只能发送, 把客户端的发送发送代码删去让他不能接受结果,客户端就能收到服务端的信息 ---但这又有什么用呢? ----说明网络没问题 3.我还怀疑是程序的问题,但在局域网内服务端和客户端能够互发信息 ----说明软件没问题 因此我就纳闷了---到底问题出在哪呢 ???
java关于socket服务器与客户端交互
我的程序执行结果出现java.net.SocketException: Connection reset,初学者,求大神解决 服务器发送usr给客户端 客户端收到usr后发送linda给服务器, 服务器收到linda就回复welcome,否则回复wrong name 代码如下: 服务器: ``` import java.net.*; import java.io.*; public class ServerRegister { public static void main(String args[]) { try{ ServerSocket Ss=new ServerSocket(1111); Socket s=Ss.accept(); PrintStream out=new PrintStream(s.getOutputStream()); BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream())); while(true) { System.out.println("send to Client "+"user:"); out.println("user"); String x=in.readLine(); System.out.println("get from client"+x); if(x.equals("linda")) { System.out.println("send to Client"+"Login welcome!"); out.println("welcome!"); } else out.println("wrong name"); out.close(); in.close(); s.close(); } }catch(IOException e) { System.out.println(e.toString()); } } } ``` 客户端: ``` import java.io.*; import java.net.*; public class ClientRegister { public static void main(String args[]) { try { Socket s=new Socket("127.0.0.1",1111); BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintStream out=new PrintStream(s.getOutputStream()); String x=in.readLine(); if(x.equals("user:")) { System.out.println("get from server:"+x); System.out.println("send to server"+"linda"); out.println("linda"); x=in.readLine(); System.out.println("get from server"+x); if(x=="welcome!") { System.out.println("register sussfully"); } else if(x=="wrong name") System.out.println("register unsussfully"); }else{ System.exit(0);} out.close(); in.close(); s.close(); }catch(IOException e) { System.out.println(e.toString()); } } } ```
java socket如何接收C客户端发过来的结构体数据?
C做客户端向java服务器通过socket发送结构体数据,传送的是约定好的数字,但是服务端通过InputStream接收数据,然后放到byte数组中,然后再转为string类型的,现在出现乱码?这是怎么回事呢?直接将byte数组中的数据输出发现里面出现负数,约定的数据都是正的,这是怎么回事呢?是转码的问题还是接收的问题呢?请问如何解决呢?麻烦知道的帮助小弟一下。多谢
java socket 收不到客户端消息
直接用字节留能收到 InputStream is = socket.getInputStream(); 转成字符六就收不到消息了 br = new BufferedReader(new InputStreamReader(socket.getInputStream())); 请问这是怎么回事.在线等...谢谢 . 对方发过来的是16进制的数据.我用InputStream处理不了,必须转成BufferedReader,但是转完就收不到数据了.
SOCKET接收数据的同事并且将接收的数据转发到自己的服务端,以供别的客户端请求读取
1、假设我有一个socket客户端A,接收其他服务器的信息,解析完成之后,存到数据库, 2、同时要启动一个自己的服务端S,可以让其他的客户端假设B进行请求,输入账号密码,通过之后拿到A实时接收到的数据
JAVA Socket服务器与客户端互发信息,只能收发第一条?
收到第一条之后再发送第二条,客户端会出现IO异常,客户端代码如下: Socket s1; DataInputStream dis = null; DataOutputStream dos = null; public void Accept(int port) { try{ s1 = new Socket("127.0.0.1", port); dis = new DataInputStream(s1.getInputStream()); while (true) { //时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //把聊天记录设置为 之前的+现在的 MessageArea.setText(MessageArea.getText()+ "对方 "+df.format(System.currentTimeMillis())+"\n" +dis.readUTF()+"\n"); } } catch(ConnectException e) { MessageArea.setText(MessageArea.getText()+"网络连接失败!"); } catch(IOException e) { MessageArea.setText(MessageArea.getText()+"AcceptIO异常!"); } } public void Send() { try{ dos = new DataOutputStream(s1.getOutputStream()); dos.writeUTF(Message.getText()); dos.flush(); //时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); MessageArea.setText(MessageArea.getText()+ "我 "+df.format(System.currentTimeMillis())+"\n" +Message.getText()+"\n"); Message.setText(null); }catch(ConnectException e) { MessageArea.setText(MessageArea.getText()+"网络连接失败!"); }catch(IOException e) { MessageArea.setText(MessageArea.getText()+"SendIO异常!"); } } }
socket客户端怎么接受服务器传过来的java类数据包
我通过服务器向客户端传了一个java类,不知道怎么接受,不想把这个java类中的数据放到数组中传。目前只会发送一个字符串,然后可以接收字符串。
android socket 发送 sendUrgentData 后客户端接收不到数据
我在pc上用java写的 socket服务端,在安卓模拟器上写的客户端,代码如下: 服务端: ServerSocket ss = new ServerSocket(9090); Socket socket = ss.accept(); ObjectOutputStream oos = new ObjectOutputStream( socket.getOutputStream()); oos.writeObject("HELLO"); socket.sendUrgentData(0xff); oos.writeObject("hello"); System.out.println("已经发出"); oos.flush(); oos.close(); } catch (Exception e) { e.printStackTrace(); } ``` ``` 客户端: new Thread() { public void run() { try { Socket socket = new Socket("192.168.56.1", 9090); ObjectInputStream in = new ObjectInputStream( socket.getInputStream()); Log.i("myprint", (String) in.readObject()); Log.i("myprint", (String) in.readObject()); } catch (Exception e) { e.printStackTrace(); } } }.start(); 结果客户端只收到了第一个字符串,没收到第二个字符串,而服务端已经发送完毕,关闭了 。 我去掉socket.sendUrgentData(0xff);这一行 则两个字符串都可以收到。。 请问是什么原因
java socket 多次反复通信
我用java socket实现简单的通讯功能,在做登陆的时候,客户端将用户名密码读取出来 发送给服务器(这是第一步),服务器读取信息后校验(这是第二步),校验后发送给客户端,客户端读取是否登陆成功的消息(这是第三步),但是,第一步第二步都没问题,但客户端无法将服务器再次发送的消息读取出来,下面是我的部分代码,我不知道怎么实现这种多次反复通信的问题,希望大家不吝赐教。 服务器代码: output = new OutputStreamWriter(socket.getOutputStream()); input = new DataInputStream(socket.getInputStream()); byte [] b2=new byte[1024]; int len=input.read(b2); String str = new String(b2,0,len); //读取用户名密码 System.out.println("客户端接收到的用户名密码:"+str); //此处校验代码省略,假设用户名密码正确 output.write("reponse:1"); //发送给客户端登陆消息 System.out.println("服务器消息:登陆消息已发给客户端"); 服务器控制台: 已启动监听,调用线程进入等待阶段…… 服务器消息,客户端已响应 服务器消息:服务器已经建立与客户端的连接,客户端ip:/127.0.0.1 已启动监听,调用线程进入等待阶段…… 客户端接收到的用户名密码:command:1;userName:username;passWord:password 服务器消息:登陆消息已发给客户端 客户端代码: input = new BufferedReader( new InputStreamReader(socket.getInputStream())); DataOutputStream output = new DataOutputStream(socket.getOutputStream()); byte[] b = MainWindow.DATA.getBytes(); //将用户名密码转化为byte output.write(b); //发送给服务器 System.out.println("用户名,密码信息已发送"); output.flush(); String str = input.readLine(); //读取服务器消息 System.out.println("客户端消息:已读取到登录信息"); if(str.equals("reponse:1")){ LoginDialogs.AUTH = true; //授予客户端登录权限 } System.out.println(LoginDialogs.AUTH); 客户端控制台: 已连接 登陆按钮消息:已点击 用户名,密码信息已发送
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
深深的码丨Java HashMap 透析
HashMap 相关概念 HashTab、HashMap、TreeMap 均以键值对像是存储或操作数据元素。HashTab继承自Dictionary,HashMap、TreeMap继承自AbstractMap,三者均实现Map接口 **HashTab:**同步哈希表,不支持null键或值,因为同步导致性能影响,很少被使用 **HashMap:**应用较多的非同步哈希表,支持null键或值,是键值对...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问