- 浏览: 934122 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
文章路径:http://javasam.iteye.com/blog/1484307
简单实用的Socket例子--服务端+客户端:
http://javasam.iteye.com/blog/1484173
Java代码
/**服务端**/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class ThreadServer extends Thread {
private Socket server;
private BufferedReader reader;
private PrintWriter writer;
public ThreadServer(Socket socket) throws IOException {
server = socket;
reader = new BufferedReader(new InputStreamReader(
server.getInputStream()));//创建输入流
writer = new PrintWriter(new OutputStreamWriter(
server.getOutputStream()));//创建输出流
start();
}
public void run() {
try {
while (true) {
String str = reader.readLine();//读取客户端传来的请求
if (str.equals("END"))
break;
System.out.println("Echoing:" + str);
writer.println(str);//打印请求信息
}
} catch (IOException e) {
} finally {
try {
server.close();
} catch (IOException e) {
}
}
}
/**main启动服务器**/
static final int PORT = 8080;
public static void main(String[] args) throws IOException{
ServerSocket server = new ServerSocket(PORT);//启动服务器
System.out.println("Server Started:" + server);
try{
while(true){
Socket socket = server.accept();//进入阻塞状态准备接收数据
try {
new ThreadServer(socket);//创建服务线程
} catch (IOException e) {
socket.close();
}
}
}finally{
server.close();
}
}
}
/**客户端**/
package com.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class ThreadClient extends Thread {
private Socket client;//客户端套接字(浏览器等等)
private BufferedReader reader;//输入流
private PrintWriter writer;//输出流
private static int counter = 0;//请求数量
private int id = counter++;//请求id
private static int threadcount = 0;//线程数量
public static int getThreadCount() {
return threadcount;
}
public ThreadClient(InetAddress address){
System.out.println("Making client" + id);
threadcount ++;
try{
client = new Socket(address,MultiJobServer.PORT);//发送请求到指定地址+端口
}catch (IOException e) {
}
try {
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));//初始化输入流
writer = new PrintWriter(new OutputStreamWriter(client.getOutputStream()),true);//初始化输出流
start();//开始线程
} catch (IOException e) {
try {
client.close();
} catch (IOException e2) {
}
}
}
public void run(){
try {
for(int i = 0 ; i < 25 ; i ++){
writer.println("Client " + id + ":" + i);//发送请求信息
String str = reader.readLine();//接收返回的信息
System.out.println(str);//打印返回数据
}
writer.println("END");
} catch (Exception e) {
}finally{
try {
client.close();
} catch (IOException e) {
}
threadcount --;
}
}
static final int MAX_THREADS = 4000;//最大线程数
@SuppressWarnings("static-access")
public static void main(String[] args) throws UnknownHostException, InterruptedException {
InetAddress address = InetAddress.getByName(null);//得到本机地址
while(true){
if(ThreadClient.getThreadCount() < MAX_THREADS){
new ThreadClient(address);//发送请求
Thread.currentThread().sleep(100);//休眠100毫秒后继续请求
}
}
}
}
/**服务端**/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static final int PORT = 8080;
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(PORT);
System.out.println("Started " + server);
try {
Socket client = server.accept();
try {
System.out.println("Connection accepted: " + client);
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
while(true){
String str = reader.readLine();
if(str.equals("END"))break;
System.out.println("Echoing:" + str);
writer.println(str);
}
} finally{
System.out.println("closing...");
client.close();
}
} finally{
server.close();
}
}
}
Java代码
/**客户端**/
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
InetAddress address = InetAddress.getByName(null);
System.out.println("address:" + address);
Socket client = new Socket(address,JobServer.PORT);
try{
System.out.println("socket:" + client);
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter writer = new PrintWriter(new BufferedOutputStream(client.getOutputStream()),true);
for(int i = 0; i < 10 ; i++){
writer.println("howdy " + i);
String str = reader.readLine();
System.out.println(str);
}
writer.println("END");
}finally{
System.out.println("closing...");
client.close();
}
}
}
简单实用的Socket例子--服务端+客户端:
http://javasam.iteye.com/blog/1484173
Java代码
/**服务端**/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class ThreadServer extends Thread {
private Socket server;
private BufferedReader reader;
private PrintWriter writer;
public ThreadServer(Socket socket) throws IOException {
server = socket;
reader = new BufferedReader(new InputStreamReader(
server.getInputStream()));//创建输入流
writer = new PrintWriter(new OutputStreamWriter(
server.getOutputStream()));//创建输出流
start();
}
public void run() {
try {
while (true) {
String str = reader.readLine();//读取客户端传来的请求
if (str.equals("END"))
break;
System.out.println("Echoing:" + str);
writer.println(str);//打印请求信息
}
} catch (IOException e) {
} finally {
try {
server.close();
} catch (IOException e) {
}
}
}
/**main启动服务器**/
static final int PORT = 8080;
public static void main(String[] args) throws IOException{
ServerSocket server = new ServerSocket(PORT);//启动服务器
System.out.println("Server Started:" + server);
try{
while(true){
Socket socket = server.accept();//进入阻塞状态准备接收数据
try {
new ThreadServer(socket);//创建服务线程
} catch (IOException e) {
socket.close();
}
}
}finally{
server.close();
}
}
}
/**客户端**/
package com.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class ThreadClient extends Thread {
private Socket client;//客户端套接字(浏览器等等)
private BufferedReader reader;//输入流
private PrintWriter writer;//输出流
private static int counter = 0;//请求数量
private int id = counter++;//请求id
private static int threadcount = 0;//线程数量
public static int getThreadCount() {
return threadcount;
}
public ThreadClient(InetAddress address){
System.out.println("Making client" + id);
threadcount ++;
try{
client = new Socket(address,MultiJobServer.PORT);//发送请求到指定地址+端口
}catch (IOException e) {
}
try {
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));//初始化输入流
writer = new PrintWriter(new OutputStreamWriter(client.getOutputStream()),true);//初始化输出流
start();//开始线程
} catch (IOException e) {
try {
client.close();
} catch (IOException e2) {
}
}
}
public void run(){
try {
for(int i = 0 ; i < 25 ; i ++){
writer.println("Client " + id + ":" + i);//发送请求信息
String str = reader.readLine();//接收返回的信息
System.out.println(str);//打印返回数据
}
writer.println("END");
} catch (Exception e) {
}finally{
try {
client.close();
} catch (IOException e) {
}
threadcount --;
}
}
static final int MAX_THREADS = 4000;//最大线程数
@SuppressWarnings("static-access")
public static void main(String[] args) throws UnknownHostException, InterruptedException {
InetAddress address = InetAddress.getByName(null);//得到本机地址
while(true){
if(ThreadClient.getThreadCount() < MAX_THREADS){
new ThreadClient(address);//发送请求
Thread.currentThread().sleep(100);//休眠100毫秒后继续请求
}
}
}
}
/**服务端**/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static final int PORT = 8080;
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(PORT);
System.out.println("Started " + server);
try {
Socket client = server.accept();
try {
System.out.println("Connection accepted: " + client);
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
while(true){
String str = reader.readLine();
if(str.equals("END"))break;
System.out.println("Echoing:" + str);
writer.println(str);
}
} finally{
System.out.println("closing...");
client.close();
}
} finally{
server.close();
}
}
}
Java代码
/**客户端**/
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
InetAddress address = InetAddress.getByName(null);
System.out.println("address:" + address);
Socket client = new Socket(address,JobServer.PORT);
try{
System.out.println("socket:" + client);
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter writer = new PrintWriter(new BufferedOutputStream(client.getOutputStream()),true);
for(int i = 0; i < 10 ; i++){
writer.println("howdy " + i);
String str = reader.readLine();
System.out.println(str);
}
writer.println("END");
}finally{
System.out.println("closing...");
client.close();
}
}
}
发表评论
-
session知识点
2012-04-29 19:56 1262session的作用,生命周期 session的原理 sess ... -
Cookie安全漫谈
2012-04-14 15:22 872在 Web 应用中,Cookie 很 ... -
HTTP 协议详解
2012-04-14 15:20 984文章链接:http://kb.cnblogs. ... -
Jquery也是实现Ajax
2012-03-09 21:31 1002在上一篇介绍MVC中的Ajax实现方法的时候,曾经提到了除了使 ... -
java操作DOM节点的添加,删除,修改
2012-03-08 11:27 19244java操作DOM节点的添加,删除,修改 下面我们开始对此x ... -
json解析
2012-02-24 14:42 1358public class JsonUtil { /* ... -
jquery获取后台数据简单例题
2012-02-24 14:02 1168html部分: <!DOCTYPE HTML PUBL ... -
实现分布式session有几种办法
2012-02-16 16:18 1165实现分布式session有几种办法 各有什么优缺点 可以分 ... -
Cookie的使用
2012-01-31 23:57 840在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
张孝祥老师HTTP协议详解视频整理
2011-12-21 20:15 2662HTTP协议是每一位Web开发者都应该熟悉甚至精通的网络协议。 ... -
cookie的使用
2011-12-20 19:41 928在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
Web开发人员应当知道的15个开源项目
2011-12-19 11:30 931Web开发人员应当知道的15个开源项目 (2011-04-06 ...
相关推荐
音乐的控制,rms的操作类,java字符串解析 将字符串解析成字符数组,java进度条实例模板,j2me中将对象转换成字节数组的方法,j2me联网测试,j2me多线程的应用实例,j2me Socket通信例子 客户端,服务器端
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
在Android中实现多线程断点下载 Android提高篇内容整理 android移动开发案例精选 Android通过画线实现button效果 Android如何防止apk程序被反编译 Android 之 AIDL 和远程 Service 调用 Android 相对布局技巧 ...
4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 4.12.2 如何使一个窗体在屏幕的最顶端 194 4.12.3 实现窗体渐显效果 194 4.12.4 设置窗口背景为渐变色 195 ...
4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 4.12.2 如何使一个窗体在屏幕的最顶端 194 4.12.3 实现窗体渐显效果 194 4.12.4 设置窗口背景为渐变色 195 ...
2.20 实用的函数 2.21 练习 第3章 Python基础 3.1 语句和语法 3.1.1 注释(#) 3.1.2 继续() 3.1.3 多个语句构成代码组() 3.1.4 代码组由不同的缩进分隔 3.1.5 同一...
2.20 实用的函数 2.21 练习 第3章 Python基础 3.1 语句和语法 3.1.1 注释(#) 3.1.2 继续(\) 3.1.3 多个语句构成代码组(:) 3.1.4 代码组由不同的缩进分隔 3.1.5 ...
应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源...
Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] [TablePanel.java] 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] ...
Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] [TablePanel.java] 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] ...
Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] [TablePanel.java] 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] ...