易截截图软件、单文件、免安装、纯绿色、仅160KB

java socket和多线程(Thread)实例

1. socket通信:有客户端和服务端的socket代码。
2.
多线程:客户端和服务端各用一线程发送信息;服务端另有一监听线程,用于把超时的信息删除。
   
这里应用到了同步,使两个线程可以操作同一个map。
代码:(类全在同一个包内)
server端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Collections;
import java.util.concurrent.TimeUnit;
import java.util.HashMap;
import java.util.Map;
public class ServerNet {
// 以毫秒为单位
private final static long timeLimit = 10000 ;
private Map<String,String> map = Collections.synchronizedMap(new HashMap<String,String>());

public void ServerSocketNet(){
try{
ServerSocket ss = new ServerSocket(6060);
Socket s = ss.accept();
// 用于获取客户端传输来的信息
BufferedReader buff = new BufferedReader(new InputStreamReader(s.getInputStream()));
// 用于获取服务端准备响应的信息
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// 发送服务端准备响应的信息
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("您已经成功建立连接!");

new ServerOutNet(pw, in);
new ServerTimeListener(map, timeLimit);

// 显示客户端的传输来的信息
while(true){
String str = buff.readLine();
if(str.equals("exit")){
break;
}else{
map.put(ServerHelper.getInstance().getMapKey(), str);
System.out.println(str + " map.size: " + map.size());

}
System.out.println("To Client:");
Thread.sleep(100);
}
s.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
new ServerNet().ServerSocketNet();
}
}
/**
* server发送线程 向客户端发送响应信息
* @author ids-user
*
*/
class ServerOutNet extends Thread{
pri


相关文档:

Java防止SQL注入

 SQL注入是最常见的攻击方式之一,它不是利用操作系统或其它系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法
用户钻了SQL的空子,下面我们先来看下什么是SQL注入:
          比如在一个登陆界面,要求用户输入用户名和密码:
     & ......

java超简单,超级实用验证码

1.   验证码(2)
dsnaValidateCode.jar
dsnaValidateCode_src.rar
ValidateCode.java 验证码生成类
Java代码
package cn.dsna.util.images;   
  
import java.awt.Color;   
import java.awt.Font;   
import java.awt.Graphics2D;   ......

Java精典面试题推荐二(大家可以把自己的答案附上)

***此题以考察基础为准,北京的笔试题,可能有人做过
题:写一个程序,解析如下格式的字符串,并将解析的数字序列打印出来。
   字符串格式举例: -1~2, 3~3, 5~10, 7~15x3
   ~ 代表数字的范围, -1~2 代表从-1开始到2之间的所有数字。 3~3 代表从3开始到3的所有数字,也就是3
   7~15x3代 ......

Java常用排序算法


package com.xiaobian;   
  
public class BubbleSort {   
    //冒泡排序   
    public static void bubbleSort(int[] data){   
      &n ......

java 进制转换

public class Test { 
      public static void main(String args[]) {  
        System.out.println(Integer.toBinaryString(20));   //十进制-->2进制  
        System ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号