`
coach
  • 浏览: 382467 次
  • 性别: Icon_minigender_2
  • 来自: 印度
社区版块
存档分类
最新评论
文章列表
新建两个工程,一个客户端,一个服务端,先启动服务端再启动客户端 两个工程的读写操作线程类基本上完全相同 服务端: import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server { ...
1.客户端接受服务端的消息并打印: 客户端: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; public class Client { private static final String IP = "localhost";//服务器地址 private static final int PORT = 80 ...
什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠的、点到点的通信。 UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信。 使用TCP还是UDP,那要看你的 ...
案例: 心跳: socket模拟网页的报文连接某个网站,创建tcp的socket后,当我socket.connect后,如果在5到7秒钟不socket.send,那么这个链接就失效了。 请问如何长时间的保持这个链接 这是在服务器端的设置的,客户端没法设置,可以发送心跳包。 socket.connect后,每3-4秒用socket.send发送一字节数据(内容随便),然后观查这个连接是否保持。 lientSocket=serverSocket.accept(); OutputStream os = clientSocket.getOutputStream();           Object ...
长连接主要用于在少数客户端与服务端的频繁通信,因为这时候如果用短连接频繁通信常会发生Socket出错,并且频繁创建Socket连接也是对资源的浪费 简单说,如果是频繁通讯,使用长连接 长:connect连上后不断开,进行N次收发操作。 短:每次都connect,完成任务后立即断开。下次重连。 一般都是accept后启动一个线程去处理,该线程中的处理大致如下     短连接:    run(){        read           //读取请求包        process     //处理        write         //应答处理结果    }      ...
一个线程分配器,根据cpu的负载情况,自动完成对应线程的唤醒或者是等待操作。整个过程是一个平滑的过程,不会因为线程的切换而导致机器负载出线锯齿。 读取Linux系统TOP等指令拿到系统当前负载 package temp.util; import java.io.BufferedReader; import java.io.InputStreamReader; /** * @description 节点的cpu 内存 磁盘空间 情况 * @version 1.0 * @date 2012-7-11 */ public class NodeLoadView { ...
# linux 下 取进程占用 cpu 最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存(MEM)最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
二进制版本的mysql是已经编译好的,无需 configure ,make  make install 等步骤,只需配置一  下即可使用,卸载也方便,直接删除即可;     现在以mysql-5.1.47-linux-i686-glibc23.tar.gz 版本做介绍 : 1. # chmod 755  mysql-5.1.47-linux-i686-glibc23.tar.gz    //改变该文件为可执行权限 2. # tar -xvzf  mysql-5.1.47-linux-i686-glibc23.tar.gz     //将解压后生成的目录,复制到/usr/local/下并改名为 ...
下载最新的mysql-5.5.10-linux2.6-i686.tar.gz shell切换到root用户 安装在/usr/local目录下面 解压缩文件 $cd /usr/local $tar zxvf path/mysql-5.5.10-linux2.6-i686.tar.gz $ln -s mysql-5.5.10-linux2.6-i686 mysql 添加用户组 $groupadd mysql 给用户组添加用户 $useradd -r -g mysql mysql 给文件夹赋予用户权限 $cd mysql $chown -R mysql . (后面有点) ...
写一个程序要求主线程等待子线程运行结束后退出,且子线程同时运行。 思路共享一个计数标志位,每个线程结束后都去更新这个计数标志位,主线程判断该计数标志位是否所有的线程都已经工作完成,但是为了不去浪费过多的CPU,主线程需要进行Thread.sleep(),但是Thread.sleep()也会倒是效率的下降,所以这样的方法并不完美。 查资料,发现java.util.concurrent包中有个名为Executors的类,可以创建线程池,于是仔细研究了一下,发现使用这个类构造一个线程池,可以很简单的解决这个问题。 package base; import java.util.concurr ...
1.延迟删除 一条数据会被很多数据引用。当被引用的数据删除时,引用的数据也需要删除。这时候可以用延迟删除的方法。 例子: 用户发表的帖子,可以被转发到很多地方。所有转发过的贴都是对原帖的引用,用户接着把他的原帖删除,所有被转发过的帖子也需要进行清理。我们采用的是延迟删除的方法,用户操作时,先直接删除原帖,被转发的贴,在点击时,会到原帖加载内容,这时发现原帖已经不存在,此时这条被点击的转发贴也会被删除。 当用户访问引用的数据时,发现被引用的数据不存在,此时删除引用的数据。 2.线下删除 一条数据关联到很多数据。但这条数据是所有其他数据的入口。 例子: 一个扣扣群里,会有很多内容 ...
        OOM这个缩写就是Java程序开发过程中让人最头痛的问题:Out of Memory。在很多开发人员的开发过程中,或多或少的都会遇到这类问题,这类问题定位比较困难,往往需要根据经验来判断可能出现问题的代码。原因主要是 ...
JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达到数十万/ ...
import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Digest { /** * 获取指定文件的md5值。 ...
Session持久化(2007-04-08) Session持久化可以实现当tomcat重新启动后,当前IE使用的session仍然有效而不用重新登录,有两步需要做,session持久化很有用,尤其在eclipse中重新增加类后,tomcat重新加载后,IE页面不用再登录,之前的session依旧保持,调试的时候很有用 1.配置conf/server.xml 在server.xml的根路径或虚拟目录中增加一段,如虚拟目录调度所中: <Context path="/dds" docBase="D:\01_XZY\98_供电局调度所\02_JSP\HRDGDZC\ ...
Global site tag (gtag.js) - Google Analytics