java中使用ServerSocket的问题

![图片说明](https://img-ask.csdn.net/upload/201509/17/1442498147_628872.png)图片说明

服务端代码 和 问题如图,但我查了API文档后
图片说明

serverSocket是有这个构造方法的,找了整整一天也没找到解决方法,跪求大神解决

6个回答

你编程习惯不是很好,首先类名你用ServerSocket跟TCP协议里的ServerSocket关键字相同,在你创建对象的时候很容易发生错误。所以你的ServerSocket ss=new ServerSocket(port);会报错,因为你的ServerSocket类并没有构造含参数的方法,你本意是想用ServerSocket的API就无法实现。你可以按照下面的例子重新编写一下
public class Server {
private ServerSocket server;
public Server(){
try{
//初始化Socket的同时需要指定服务端口
server=new ServerSocket(8088);

    }catch(Exception e){
        e.printStackTrace();
    }
}
public void start(){
    try{
        //Socket accept()方法用来监听服务端口
        System.out.println("等待客户端连接....");
        Socket socket=server.accept();
        System.out.println("一个客户端连接成功!");
        InputStream in=socket.getInputStream();
        InputStreamReader isr=new InputStreamReader(in,"utf-8");
        BufferedReader br=new BufferedReader(isr);

    }catch(Exception e){
        e.printStackTrace();
    }
}
public static void main(String[] args) {
    Server server=new Server();
    server.start();
}

补一下编译出错的图
图片说明

跪求大神

补一下编译出错的图
图片说明

跪求大神

类重名了图片说明图片说明图片说明图片说明图片说明图片说明图片说明图片说明

你占用了JDK的类名ServerSocket,编译器懵了。。。你非得用这个类名吗?=、=!

类名换一个就行了!不要用serversocket!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
怎么用java代码测试serversocket的最大可连接数
不使用JMeter等压力测试软件,怎么使用java代码测试serversocket的最大可连接数? 服务器是利用serversocket,每次接收到一个socket,就提交给线程池,以下是客户端的代码 package Client; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Client { public static void main(String[] args) { initFile("test.txt"); initFile("time.txt"); ExecutorService pool = Executors.newFixedThreadPool(1000); for (int i = 0; i < 3000; i++) { pool.submit(new Thread() { @Override public void run() { sendSocket(); } }); } pool.shutdown(); } public static void initFile(String fileName) { File file = new File(fileName); if (file.exists()) file.delete(); } public static void sendSocket() { Socket socket = null; try { socket = new Socket("127.0.0.1", 14); long startTime = System.currentTimeMillis(); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String string = ""; String line; while ((line = reader.readLine()) != null) { string += line; } string += "\r\n"; long endTime = System.currentTimeMillis(); FileOutputStream fos = new FileOutputStream("test.txt", true); fos.write(string.getBytes()); fos.flush(); fos.close(); fos = new FileOutputStream("time.txt", true); String time = (endTime - startTime) + "ms\r\n"; fos.write(time.getBytes()); fos.flush(); fos.close(); } catch (UnknownHostException e) { System.out.println("UnknownHostException"); } catch (IOException e) { System.out.println("IOException1"); } finally { if (socket != null) try { socket.close(); } catch (IOException e) { System.out.println("IOException2"); } } } } 发现客户端数量为3000的时候就会打印IOEXCEPTION1,但是服务器那边却没有崩溃。到底该怎么测试最大可连接数呢?
ecplise Java中用ServerSocket监听端口问题
端口号为60012,java的PID为4036,只启用了一个ServerSocket。打开cmd并netstat -aon|findstr "60012"后,发现有两个地址?这是为什么?谢谢各位大神了 ![图片说明](https://img-ask.csdn.net/upload/201602/21/1456036023_903875.png) ![图片说明](https://img-ask.csdn.net/upload/201602/21/1456035860_350548.png)
java关于ServerSocket.accept()的问题
我在写一个利用socket通信的程序,我在Server类(服务器类)中写一个start方法,此方法中用ServerSocket.accept()方法来监听客户机后,调用线程进入等待阶段,直到服务器响应。 现在,我在mian方法中实例化一个服务器类,调用start方法监听客户机,我想在客户机响应之前关掉socket,但由于调用start后调用线程进入了等待状态,因此在mian方法中无法继续操作。
Java的ServerSocket类,可以连接多少ClientSocket?
例如我创建一个ServerSocket,ServerSocket的连接上限由什么决定? 可以连接多少ClientSocket?
【小白求教】JAVA多线程跑ServerSocket内存逐渐爆满死机
第一个是教材上正确的代码,可以正常多线程运行的 主程序: package com.server; import java.io.*; import java.util.*; import java.net.*; import com.bean.*; import com.biz.ServerBiz; public class MainServer { private ServerSocket serverSocket; private Socket socket; private InputStream in; private OutputStream out; public MainServer() { //创建服务器的套接字 try { serverSocket=new ServerSocket(8888); System.out.println("服务器已经启动....."); while(true){ socket=serverSocket.accept();//监听并且接收客户端请求 ServerBiz serverBiz=new ServerBiz(socket); Thread td=new Thread(serverBiz);//将serverBiz设置到线程中,每开一个客户端,会创建一个新的线程处理客户端的数据 td.start();//开始 } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { new MainServer(); } } ===================================== package com.biz; import java.io.*; import java.util.*; import java.net.*; import com.bean.*; public class ServerBiz implements Runnable { private Socket socket; private InputStream in; private OutputStream out; public ServerBiz(Socket socket) { this.socket=socket; try { in=socket.getInputStream(); out=socket.getOutputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { try { /************接收***************************************/ in=socket.getInputStream(); ObjectInputStream objin=new ObjectInputStream(in); Users us=(Users) objin.readObject(); int code=0;//状态码 if(us!=null){ if(us.getUname()!=null&&!us.getUname().trim().equals("") &&us.getPasswd()!=null&&!us.getPasswd().trim().equals("")){ System.out.println("账号:"+us.getUname()); System.out.println("密码:"+us.getPasswd()); code=1;//登陆成功! } } socket.shutdownInput();//结束接收 /******************************************************/ /*****向客户端发送响应***************************************/ out=socket.getOutputStream(); out.write(code);//向客户端发送状态码 out.flush(); socket.shutdownOutput();//结束输出 /******************************************************/ } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ================================== 以上是教材正确的代码, 我奇怪为什么不能将 socket=serverSocket.accept() 写在runnable中的run方法中,于是我修改成了下面的代码,可是这个是不能正常运行的。 先打开任务管理器,再运行这个程序,可以看到内存在很短的时间内逐渐爆满,从而导致电脑无法使用 主程序: package com.server; import java.net.*; import java.io.*; import com.bean.Users; import com.biz.ServerBiz; public class MainServer { private ServerSocket ss; public MainServer() { try { ss = new ServerSocket(8888); System.out.println("服务器已经启动......"); /************************ 客户端发送来的消息 **************************/ while (true) { ServerBiz sb=new ServerBiz(ss); Thread t=new Thread(sb); t.start(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new MainServer(); } } =============================== 下面是设置的Runnable package com.biz; import java.net.*; import java.io.*; import com.bean.Users; public class ServerBiz implements Runnable { private ServerSocket ss; public ServerBiz(ServerSocket ss) { this.ss = ss; } @Override public void run() { try { Socket sk = ss.accept(); InputStream ips = sk.getInputStream(); ObjectInputStream objectin = new ObjectInputStream(ips); Users user = new Users(); user = (Users) objectin.readObject(); int code = 0; if (user != null && user.getPassword() != null && user.getUname() != null && !user.getPassword().trim().equals("") &&!user.getUname().trim().equals("")) { System.out.println("用户名:" + user.getUname()); System.out.println("密码:" + user.getPassword()); code = 1; } sk.shutdownInput(); /**************************************************************/ /************************ 向客户端发送的消息 **************************/ OutputStream ops = sk.getOutputStream(); ops.write(code); ops.flush(); sk.shutdownOutput(); /**************************************************************/ } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ========================= (本来还有个client端,这里忽略) 求大神指点什么将 socket=serverSocket.accept() 写在Runnable中 ,运行后就死机啊,非常感谢啊!
Java中用Socket和多线程制作聊天窗口中遇到的问题
最近在学习Socket网络连接,在制作聊天服务器时采用了多线程的方式。下面是代码: 服务器 ``` package socketConnect; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.Iterator; public class SimpleChatServer { ArrayList<PrintWriter> clientOutputStreams; public class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSocket) { // TODO Auto-generated constructor stub sock = clientSocket; try { InputStreamReader isReader = new InputStreamReader(clientSocket.getInputStream()); reader = new BufferedReader(isReader); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { // TODO Auto-generated method stub String message; System.out.println("服务端线程在跑"); try { while ((message = reader.readLine()) != null) { System.out.println("Sread: " + message); tellEveryone(message); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void go() { clientOutputStreams = new ArrayList<>(); try { ServerSocket serverSock = new ServerSocket(8080); while (true) { Socket clientSocket = serverSock.accept(); PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); clientOutputStreams.add(writer); Thread t = new Thread(new ClientHandler(clientSocket)); t.start(); System.out.println("got a connection"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void tellEveryone(String message) { Iterator<PrintWriter> it = clientOutputStreams.iterator(); while (it.hasNext()) { PrintWriter writer = (PrintWriter)it.next(); writer.println(message); writer.flush(); } } public static void main(String[] args) { new SimpleChatServer().go(); } } ``` 客户端 ``` package socketConnect; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class ClientA { JTextField outgoing; JTextArea incoming = new JTextArea(15, 50); PrintWriter pw; BufferedReader br; Socket socket; public void go() { JFrame frame = new JFrame("Chat Client"); JPanel panel = new JPanel(); incoming.setLineWrap(true); incoming.setWrapStyleWord(true); incoming.setEditable(false); JScrollPane scrollPane = new JScrollPane(incoming); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); outgoing = new JTextField(20); JButton button = new JButton("Send"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String text = getClass().getEnclosingClass().getSimpleName() + ": " + outgoing.getText(); try { pw.println(text); pw.flush(); } catch (Exception e2) { // TODO: handle exception } outgoing.setText(""); outgoing.requestFocus(); } }); panel.add(outgoing); panel.add(button); setUpNetWorking(); Thread readerThread = new Thread(new IncomingReader()); readerThread.start(); frame.getContentPane().add(BorderLayout.NORTH, scrollPane); frame.getContentPane().add(BorderLayout.CENTER, panel); frame.setSize(400, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);; } private void setUpNetWorking() { try { socket = new Socket("127.0.0.1", 8080); pw = new PrintWriter(socket.getOutputStream()); InputStreamReader isReader = new InputStreamReader(socket.getInputStream()); br = new BufferedReader(isReader); System.out.println("networking established"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { System.out.println("程序运行开始"); new ClientA().go(); } public class IncomingReader implements Runnable { @Override public void run() { // TODO Auto-generated method stub System.out.println("线程开始跑了"); String message; try { while ((message = br.readLine()) != null) { System.out.println("Aread: " + message); incoming.append(message + "\n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("线程跑完了"); } } } ``` 以上是代码,运行不报错,可以正常实现聊天。 但是想知道一些细节的原理: 1. 先运行服务端,跑起来后控制台无输出。然后运行客户端,控制台首先会闪现一下以下的输出(是闪现的,特别快,所以我截不了图,手打的): 程序运行开始 networking established 线程开始跑了。 这应该是是客户端运行时的输出,然后是这样的输出: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580646630_513143.jpg) 所以当服务端建立接口之后等待客户端的请求,客户端请求该端口之后,是整个客户端程序运行了一遍,然后服务器的代码才会接着往下运行吗?但是如果整个客户端程序运行了一遍,为什么控制台不输出“线程跑完了”?还是说客户端监听服务器信息的那个线程一直在独立空间中运行着? 请大神帮我解答一下服务器和客户端运行时代码的运行过程以及客户端子线程为什么跑不完? 2. 当我向聊天框中输入信息时: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580647157_870751.jpg) 点击send,会出现以下结果: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580647257_332283.jpg) 所以为什么整个客户端又重新运行了一次????我只是点击了send触发了监听器监听的事件,事件中flush了输出流的内容,为啥整个客户端好像重新run了一次??另外,这个子线程是一直监听服务器的信息吗?服务器没有新的消息它也不结束,就一直等待吗? 请大神解答一下,我对多线程也是刚刚接触,而且有点强迫症,想搞清楚一切不理解的东西。。
java 关于sock通信问题 serverSocket.accept()阻塞
大神们怎么能让 serverSocket.accept()等待一段时间如果没人连接就退出啊 ```public List<Socket> socketAccept(ServerSocket server){ try { long time=System.currentTimeMillis(); while (System.currentTimeMillis()-time<2000) {//10毫秒后退出 Socket socket = server.accept(); sockets.add(socket);//得到socket连接数 } } catch (IOException e) { e.printStackTrace(); try { server.close(); } catch (IOException e1) { e1.printStackTrace(); } } return sockets; } ``` 如果没有连接Socket socket = server.accept();会一直在这等着,有什么办法跳出循环吗
java中Socket的相关问题
ServerSocket serverSocket=new ServerSocket(8989); while(true) { Socket socket = serverSocket.accept(); new Thread(new ServerThread(socket)).start(); } 在这段代码中,如果serverSocket.accept()处于阻塞状态时,程序是否会执行子线程中的代码,如果不能,如何才能让它执行子线程中的代码?求各位大佬们告知一个方法
求问,一道关于tomcat,java 的问题,求解答
java.net.BindException: Address already in use: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190) at java.net.ServerSocket.bind(ServerSocket.java:376) at java.net.ServerSocket.<init>(ServerSocket.java:237) at java.net.ServerSocket.<init>(ServerSocket.java:128) at Server.run(Server.java:25) at java.lang.Thread.run(Thread.java:745) 运行tomcat时遇到的问题,求指教
ServerSocket返回数据给客户端数据的超时问题
场景:多线程环境下,客户端通过Socket发送请求给ServerSocket,现在ServerSocket需要去取数据并返回给Socket。取数据的过程时间是不定的,现在要求设置一个超时时间,如果ServerSocket取数据的时间超过一个定值就通知客户端超时并关闭socket。 问题:请问如何设置这个超时时间。 注意:Socket和ServerSocket已经建立了连接。 ------------------------------ 我想通过一个定时器来实现,不知道可不可以;是否还有什么更好的办法? 求解!!!
自己搭建的tomcat服务器的url怎么写
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class HttpServer { private static final Integer port = 80;//HTTP默认端口80 public static void main(String[] args) { ServerSocket serverSocket; try { //建立服务器Socket,监听客户端请求 serverSocket = new ServerSocket(port); System.out.println("服务器端口:"+serverSocket.getLocalPort()); //死循环不间断监听客户端请求 while(true){ final Socket socket = serverSocket.accept(); System.out.println("接收到一个请求,请求地址:"+ socket.getInetAddress()+":"+socket.getPort()); //并发处理HTTP客户端请求 service(socket); } } catch (IOException e) { e.printStackTrace(); } } public static void service(final Socket socket) { new Thread(){ public void run(){ InputStream inSocket; try { //获取HTTP请求头 inSocket = socket.getInputStream(); int size = inSocket.available(); byte[] buffer = new byte[size]; inSocket.read(buffer); String request = new String(buffer); System.out.println("ClientBrowser:\n"+request+"\n" + "------------------------------------------------------------------"); String firstLineOfRequest = ""; //http报文头 String[] heads; //报文头的数据集合 String uri = "/index.html"; String contentType =""; if(request.length() > 0){ firstLineOfRequest = request.substring(0,request.indexOf("\r\n")); heads = firstLineOfRequest.split(" "); uri = heads[1]; if(uri.indexOf("html") != -1){ contentType = "text/html"; }else{ contentType = "application/octet-stream"; } } System.out.println("http报文内容:"+request.substring(request.indexOf("\r\n"),request.length())); //将响应头发送给客户端 String responseFirstLine = "HTTP/1.1 200 OK\r\n"; String responseHead = "Content-Type:" + contentType +"\r\n"; OutputStream outSocket = socket.getOutputStream(); System.out.println("ServerResponse:\n"+responseFirstLine+"\n"+responseHead+"\n" + "--------------------------------------------------------------------"); outSocket.write(responseFirstLine.getBytes()); outSocket.write(responseHead.getBytes()); //通过HTTP请求中的uri读取相应文件发送给客户端 FileInputStream writehtml = new FileInputStream(new File("wwwroot"+uri)); outSocket.write("\r\n".getBytes()); byte[] htmlbuffer = new byte[writehtml.available()]; if(writehtml !=null){ int len = 0; System.out.println("writeHtml"); while((len = writehtml.read(htmlbuffer)) != -1){ outSocket.write(htmlbuffer, 0,len); } } outSocket.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } } ``` ```
关于java的Socket的一个问题
服务端 package 手写服务器一; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; ////////////////// public class Server { private ServerSocket server; public static void main(String[] args) { Server s=new Server(); s.start(); } //创建客户端 private void start(){ try { server=new ServerSocket(9999); this.receive(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //接收数据 private void receive(){ try { Socket socket=server.accept(); StringBuilder msg=new StringBuilder(); String str=null; BufferedReader reader=new BufferedReader( new InputStreamReader(socket.getInputStream())); while((str=reader.readLine()).length()>0) { msg.append(str); msg.append("\r\n"); } System.out.println(msg.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 客户端 package 客户端; /////////// import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; //////////// public class Client { public static void main(String[] args) throws IOException{ @SuppressWarnings("resource") Socket socket=new Socket(InetAddress.getLocalHost(),9999); BufferedWriter writer=new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())); writer.write("我是"); writer.newLine(); writer.flush(); } } ////////// 错误为:java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.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.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at 手写服务器一.Server.receive(Server.java:34) at 手写服务器一.Server.start(Server.java:20) at 手写服务器一.Server.main(Server.java:14) /////////////// 客户端访问会报上面的错误,错误在服务端的接收数据的while循环那里; 主要想问一下为什么会报这样的错,改进可以不要, 但是如果我用浏览器访问这个服务器,却不会报错,这是为什么呢, 这里主要问一下为什么会出这样的错,改进可以不要。
一个简单的Java服务端,客户端的demo中的问题。
首先说我的问题:我需要用java做一个服务器端,当客户端发过一条请求来以后,服务器端开始每隔1s对客户端发送一个字符串。 然后说我的思路: 这是服务端。 public static void main(String[] args) { String temp; try { while (true) { ServerSocket ss = new ServerSocket(30000); // 每当接受到客户端socket的请求,服务端也对应产生一个socket Socket s = ss.accept(); System.out.println("IP为" + s.getInetAddress() + "连接此服务器"); // 接受客户端发送的数据 BufferedReader br = new BufferedReader(new InputStreamReader( s.getInputStream())); System.out.println("来自客户端的数据:" + br.readLine()); // 将Socket对应的输出流包装成PrintStream PrintStream ps = new PrintStream(s.getOutputStream()); // 进行普通的 io操作 temp = new ds().product(); System.out.println("temp" + temp); ps.println(temp); ps.close(); br.close(); s.close(); } } catch (Exception e) { // TODO: handle exception } 其中 temp=new Ds().product();是一个线程类,每1s返回一个不同的String. 问题就来了,我的server类是不是也应该是一个线程类?client是不是也应该是一个线程类? 或者我的server如果是一个线程类的话,我是不是就不需要再把赋值的类写成一个线程了??? 求好心人帮助,嘿嘿
java的Socket编程的一个问题
服务器端 package 手写服务器一; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server { private ServerSocket server; public static void main(String[] args) { Server s=new Server(); s.start(); } //创建客户端 private void start(){ try { server=new ServerSocket(9999); this.receive(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //接收数据 private void receive(){ try { Socket socket=server.accept(); StringBuilder msg=new StringBuilder(); String str=null; BufferedReader reader=new BufferedReader( new InputStreamReader(socket.getInputStream())); while((str=reader.readLine()).length()>0) { msg.append(str); msg.append("\r\n"); } System.out.println(msg.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 客户端 package 客户端; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; public class Client { public static void main(String[] args) throws IOException{ @SuppressWarnings("resource") Socket socket=new Socket(InetAddress.getLocalHost(),9999); BufferedWriter writer=new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())); writer.write("我是"); writer.newLine(); writer.flush(); } } 报的错为: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.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.BufferedReader.fill(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at 手写服务器一.Server.receive(Server.java:34) at 手写服务器一.Server.start(Server.java:20) at 手写服务器一.Server.main(Server.java:14) 在服务器端的接收数据的while那里会出错,这是为什么呢,又应该怎么改进呢,使 服务器可以循环接收,但是但我用浏览器访问服务器端时确不会出错,求大神解答。 主要问一下为什么会出这样的错,改进可以次要。
java 通过浏览器访问本地服务器打开一个html文件总是找不到路径
文件路径正确,并且绝对路径和相对路径都已经尝试,为啥一直报相同错误。 ``` package day29; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class BS { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(8888); while (true){ Socket ac = ss.accept(); new Thread(new Runnable() { @Override public void run() { try { InputStream is = ac.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(is)); String s = bf.readLine(); System.out.println(s); String[] s1 = s.split(" "); String sub = s1[1].substring(1); System.out.println(sub); FileInputStream fis = new FileInputStream(sub); OutputStream os = ac.getOutputStream(); // 写入HTTP协议响应头,固定写法 os.write("HTTP/1.1 200 OK\r\n".getBytes()); os.write("Content-Type:text/html\r\n".getBytes()); // 必须要写入空行,否则浏览器不解析 os.write("\r\n".getBytes()); int len = 0; byte[] b = new byte[1024]; while ((len = fis.read(b)) != -1){ os.write(b); fis.close(); ac.close(); } }catch (IOException E){ E.printStackTrace(); } } }).start(); } } } ``` ![图片说明](https://img-ask.csdn.net/upload/202001/16/1579188286_656266.jpg)
为什么serversocket每次收到的消息都是一样的
请大家帮忙看看,为什么每次serversocket收到的信息都是一致的,如何解决。谢谢。 用户名1101密码1111 详细代码 package client; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.Socket; import java.util.List; import java.util.Scanner; import cash.Cashier; import warehouse.StoreKeeper; import datas.Datas; import datas.Goods; import datas.User; public class ClientDemo { public static void main(String[] args) throws IOException { Scanner input = new Scanner(System.in); Socket socket = null; InputStream is = null; OutputStream os = null; ObjectOutputStream oos = null; ObjectInputStream ois = null; User user=null; // 登陆界面 System.out.println("***********欢迎使用超市管理系统***********"); System.out.println("1.登陆"); System.out.println("2.退出系统"); System.out.println("*****************请选择数字1/2*****************"); int n = input.nextInt(); if (n == 1) { do { socket = new Socket("localhost", 8800); is = socket.getInputStream(); os = socket.getOutputStream(); oos = new ObjectOutputStream(os); ois = new ObjectInputStream(is); try { /* * 给用户赋值,用户名和密码 */ user = new User(); System.out.print("请输入用户名:"); user.setName(input.next()); System.out.print("请输入密码:"); user.setPassword(input.next()); // 写出对象 oos.writeObject(user); /* * 读取服务器返回的对象数据 */ Datas datas = (Datas) ois.readObject(); String msg = datas.getMsg(); if (msg != null) { System.out.println(msg); } user = datas.getUser(); /* * 判断是否是仓库管理员 */ if (user != null) { if (user.isAdmin()) { StoreKeeper storeKeeper = new StoreKeeper(); System.out.println("*****欢迎登陆超市库存管理系统*****"); do { storeKeeper.showMenu(); //Goods good=new Goods(); String choise=input.next(); datas.setChoose(choise); oos.writeObject(datas); } while(true); } else { Cashier cashier = new Cashier(); System.out.println("*****欢迎登陆超市收银系统*****"); cashier.showMenu(); } } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { ois.close(); oos.close(); is.close(); os.close(); socket.close(); } } while (user == null); } else { System.exit(1); } } package server; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class ServerDemo { public static void main(String[] args) throws IOException { //服务端 ServerSocket ss=new ServerSocket(8800); while(true){ Socket socket=ss.accept(); ServerThread st=new ServerThread(socket); st.start(); } } } package server; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.Socket; import datas.Datas; import datas.Goods; import datas.User; public class ServerThread extends Thread{ private Socket socket; //利用构造方法进行初始化 public ServerThread(Socket socket) { this.socket = socket; } public void run() { InputStream is = null; OutputStream os = null; ObjectInputStream ois = null; ObjectOutputStream oos = null; try { ServerBiz biz = new ServerBiz(); is = socket.getInputStream(); os = socket.getOutputStream(); ois = new ObjectInputStream(is); oos = new ObjectOutputStream(os); User user = (User) ois.readObject(); Datas datas = new Datas(); //Goods good=null; user = biz.login(user); if (user != null) { datas.setUser(user); // datas.setMsg("登陆成功"); } else { datas.setMsg("用户名或密码输入错误!登陆失败!"); } oos.writeObject(datas); while(user!=null){ datas=(Datas)ois.readObject(); System.out.println(datas.getChoose()); //System.out.println(datas.getGood().getGoodId()); //oos.writeObject(datas); oos.flush(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { oos.close(); ois.close(); os.close(); is.close(); socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
URLConnection 连接 ServerSocket 无法获取流里面的数据?
Service端 ``` public static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(9999); Socket socket = serverSocket.accept(); socket.setSoTimeout(20000); OutputStream out = socket.getOutputStream(); InputStream inputStream = socket.getInputStream(); Reader reader = new InputStreamReader(inputStream); char chars[] = new char[512]; int len; while ((len = reader.read(chars)) != -1) { String str = new String(chars, 0, len); System.out.println(str); } System.out.println("--------------------"); socket.close(); } ``` Client 端 ``` public static void main(String[] args) throws Exception { URL url = new URL("http://127.0.0.1:9999/work"); URLConnection con = url.openConnection(); con.setDoOutput(true); con.setDoInput(true); OutputStream out = con.getOutputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); out.write("Hello World".getBytes()); out.flush(); // String line = ""; // for (line = br.readLine(); line != null; line = br.readLine()) { // System.out.println(line); // } out.close(); } ``` Server端输出: POST /work HTTP/1.1 User-Agent: Java/1.6.0_45 Host: 127.0.0.1:9999 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive Content-type: application/x-www-form-urlencoded Content-Length: 0 ------------------- 没有输出Hello World! 求解
java agent+ASM问题,诚心请教
最近自己在写一个工具,使用java agent+ASM去实现对某个应用中某个方法的参数,返回值以及方法执行时间的监控,现在遇到一个问题,在获取到应用的方法的参数,返回值以及方法执行时间之后,如何在agent端获取到这些数据,目前的想法是在agent端开启一个ServerSocket,然后在被监控的方法中通过ASM嵌入一个socket调用,使得该socket连接上agent端的ServerSocke,把数据返回过来,但是又觉得这样似乎不是很好,诚心请教大家,有什么好的方案没有,非常感谢
浏览器访问本地手写httpserver没有响应
``` public class Server02 { private ServerSocket serverSocket; public static void main(String[] args) { Server02 server = new Server02(); server.start(); } //启动服务 public void start() { try { serverSocket = new ServerSocket(8888); receive(); } catch (IOException e) { e.printStackTrace(); System.out.println("服务器启动失败...."); } } // public void receive() { try { Socket client = serverSocket.accept(); System.out.println("一个客户端建立了连接...."); InputStream is = client.getInputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream())); //bw.write("hahahaha"); byte[] datas = new byte[1024*1024]; int len = is.read(datas); String requestInfo = new String(datas, 0, len); System.out.println(requestInfo); StringBuilder content = new StringBuilder(); content.append("<html>"); content.append("<head>"); content.append("<title>"); content.append("服务器响应成功"); content.append("</title>"); content.append("</head>"); content.append("<body>"); content.append("终于回来了。。。。"); content.append("</body>"); content.append("</html>"); int size = content.toString().getBytes().length; StringBuilder responseInfo = new StringBuilder(); String blank = " "; String CRLF = "\r\n"; //返回 //1、响应状态行: HTTP/1.1 200 OK responseInfo.append("HTTP/1.1").append(blank); responseInfo.append(200).append(blank); responseInfo.append("OK").append(CRLF); //2、响应头(最后一行空行): responseInfo.append("Date:").append(new Date()).append(CRLF); responseInfo.append("Server:").append("shsxt Server/0.01;charset=GBK").append(CRLF); responseInfo.append("Content-type:test/html").append(CRLF); responseInfo.append("Content-lenth:").append(size).append(CRLF).append(CRLF); //3、正文 responseInfo.append(content.toString()); //4、写出到客户端 bw.write(responseInfo.toString()); bw.flush(); } catch (IOException e) { e.printStackTrace(); System.out.println("客户端错误"); } } //停止服务 public void stop() { } } ``` 使用浏览器的RESTer插件模拟GET和POST操作,却一直失败得不到返回的结果。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
网络(8)-HTTP、Socket、TCP、UDP的区别和联系
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务; 2. 是否需要给出确认 对方的传输层在收到UDP报文后,不需要给出任何确认,而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
开挂的人生!那些当选院士,又是ACM/IEEE 双料Fellow的华人学者们
昨日,2019年两院院士正式官宣,一时间抢占了各大媒体头条。 朋友圈也是一片沸腾,奔走相告,赶脚比自己中了大奖还嗨皮! 谁叫咱家导师就是这么厉害呢!!! 而就在最近,新一年度的IEEE/ACM Fellow也将正式公布。 作为学术届的顶级荣誉,不自然地就会将院士与Fellow作比较,到底哪个含金量更高呢? 学术君认为,同样是专业机构对学者的认可,考量标准不一,自然不能一概而论。 但...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
代码详解:如何用Python快速制作美观、炫酷且有深度的图表
全文共12231字,预计学习时长35分钟生活阶梯(幸福指数)与人均GDP(金钱)正相关的正则图本文将探讨三种用Python可视化数据的不同方法。以可视化《2019年世界幸福报告》的数据为例,本文用Gapminder和Wikipedia的信息丰富了《世界幸福报告》数据,以探索新的数据关系和可视化方法。《世界幸福报告》试图回答世界范围内影响幸福的因素。报告根据对“坎特里尔阶梯问题”的回答来确定幸...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何写一篇技术博客,谈谈我的看法
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识,因为知识点实在是太多太多了,通过自己的博客可以帮助自己快速回顾自己学过的东西。 我最开始的时候也是只记笔记,认为自己能看得懂就好。但如果想验证自己是不是懂了,可以写成技术博客。在写技术博客的...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【设计模式】单例模式的八种写法分析
网上泛滥流传单例模式的写法种类,有说7种的,也有说6种的,当然也不排除说5种的,他们说的有错吗?其实没有对与错,刨根问底,写法终究是写法,其本质精髓大体一致!因此完全没必要去追究写法的多少,有这个时间还不如跟着宜春去网吧偷耳机、去田里抓青蛙得了,一天天的....
《面试宝典》:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 也欢迎关注公 众 号【Ccww笔记】,原创技术文章第一时间推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
微博推荐算法简述
在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法。有这样一些问题:推荐系统适用哪些场景?用来解决什么问题、具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以”facebook”为代表的社会化网络的兴起和以“淘宝“为代表的电商的繁荣,”选择“的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从。推荐系统迎来爆发的机会,变得离用户更近: 快...
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问