- 浏览: 959073 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (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 1294session的作用,生命周期 session的原理 sess ... -
Cookie安全漫谈
2012-04-14 15:22 913在 Web 应用中,Cookie 很 ... -
HTTP 协议详解
2012-04-14 15:20 1006文章链接:http://kb.cnblogs. ... -
Jquery也是实现Ajax
2012-03-09 21:31 1039在上一篇介绍MVC中的Ajax实现方法的时候,曾经提到了除了使 ... -
java操作DOM节点的添加,删除,修改
2012-03-08 11:27 19288java操作DOM节点的添加,删除,修改 下面我们开始对此x ... -
json解析
2012-02-24 14:42 1393public class JsonUtil { /* ... -
jquery获取后台数据简单例题
2012-02-24 14:02 1200html部分: <!DOCTYPE HTML PUBL ... -
实现分布式session有几种办法
2012-02-16 16:18 1246实现分布式session有几种办法 各有什么优缺点 可以分 ... -
Cookie的使用
2012-01-31 23:57 870在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
张孝祥老师HTTP协议详解视频整理
2011-12-21 20:15 2701HTTP协议是每一位Web开发者都应该熟悉甚至精通的网络协议。 ... -
cookie的使用
2011-12-20 19:41 964在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
Web开发人员应当知道的15个开源项目
2011-12-19 11:30 959Web开发人员应当知道的15个开源项目 (2011-04-06 ...
相关推荐
"多线程Socket阻塞模式下通信的例子.rar"可能包含如何在Java或C#中实现多线程处理Socket通信的代码。 6. **Socket应用实例**: - "socket应用小例程.rar"和"Socket开发资料.rar"可能包含了各种Socket编程的实用...
同时,为了提高效率和可靠性,还可以考虑使用异步I/O或多线程技术。 总的来说,"vc有关SOCKET编程例子"是一个实用的学习资源,它涵盖了网络通信的基础知识,帮助开发者理解和实现基于SOCKET的网络应用。无论是创建...
总结起来,C#的Socket多线程编程实例给我们提供了一个非常实用的网络通信解决方案。通过本文的介绍,相信读者已经对C#在网络编程特别是Socket编程方面的应用有了深入的了解,并能够运用这些知识来设计和实现自己的...
标题中的“多线程的例子,超级经典,可以学习学习”表明这是一个关于多线程编程的示例,可能是通过一个具体的项目或代码实例来演示如何在实际应用中使用多线程技术。多线程是计算机程序设计中的一项重要技能,尤其是...
总之,VB2010的SOCKET聊天例子是一个学习网络编程和Socket通信的实用教程。通过这个实例,开发者可以了解到如何在实际应用中使用Socket来实现客户端与服务器之间的双向通信,以及如何设计一个简单的多用户聊天环境。
在局域网聊天应用中,通常会涉及到多线程或异步处理,以便同时处理多个客户端的连接。这可能需要用到`std::thread`库或者Windows的线程API。同时,为了提高用户体验,可能还需要实现文本编码转换、消息分包与重组、...
首先,Java例子大全涵盖了基础语法、面向对象编程、异常处理、IO流、多线程、网络编程、集合框架、数据库操作等多个关键领域。基础语法包括变量声明、数据类型、运算符、流程控制语句(如if、for、while等)等,这些...
理解这些基本概念和操作后,开发者可以进一步学习高级主题,如多线程处理客户端连接、异步SOCKET编程、错误处理以及SSL/TLS安全通信等。这个小例子是一个很好的起点,通过实践和扩展,你可以掌握SOCKET通信的核心...
通过分析和运行这些代码,你可以深入了解Socket编程的具体实现细节,例如如何设置Socket组件,如何处理数据的读写,以及如何在多线程环境中处理并发连接。 总之,"socket传输图片delphi代码例子"提供了一个实用的...
总之,"多线程网络通信演示"是一个实用的C++编程示例,它展示了如何结合TCP协议和多线程技术来构建一个高效的服务器端程序,以处理来自多个客户端的并发连接。通过深入理解并实践这个例子,开发者可以提升在网络编程...
5. **多线程**:Java支持多线程编程,例子会解释如何创建和管理线程,以及同步机制如synchronized关键字和wait/notify方法。 6. **输入/输出流**:Java的I/O系统允许程序进行文件操作和网络通信。书中例子会演示...
【描述】提到的"多线程socket例子"表明此程序可能同时处理多个客户端连接。在多线程环境下,服务器可以同时服务于多个并发的客户端请求,提高了系统的并发处理能力。Java Swing库是Java标准版(Java SE)的一部分,...
除了基本的通信功能,SuperSocket还提供了许多高级特性,如多线程处理、日志记录、会话管理、自定义协议解析等。这些特性使得SuperSocket能够应对各种复杂的网络应用场景,例如聊天服务器、游戏服务器、数据同步服务...
8. **多线程**:在服务器端,通常需要为每个客户端连接创建一个新的线程,以实现并发处理多个客户端请求。这是通过在`ServerSocket`的`accept()`方法上启动新线程来实现的。 9. **性能优化**:了解如何设置Socket...
- **多线程支持**: TCL支持多线程编程。 - **线程创建**: 使用 `thread::create` 命令来创建新的线程。 - **线程同步**: 提供了锁机制来同步线程之间的操作。 #### 例子: ```tcl package require thread thread::...
3. **多线程/多进程**:如果存在,可能涉及到如何处理并发连接,使用多线程或多进程来提高服务器性能。 4. **数据编码与解码**:可能包括如何将业务数据转换为字节流进行网络传输,以及在网络另一端接收后如何恢复...
这篇文章主要讲解了如何在Python3中使用`socket`、`threading`以及`fork`来实现多线程和多进程的简单...同时,对于有经验的开发者,这个例子也提供了一个实用的起点,可以根据需求扩展为更健壮的多线程或多进程服务。
6. **多线程**:Java支持并发编程,通过Thread类和Runnable接口可以创建并管理多个执行线程。习题解答将涵盖同步机制(如synchronized关键字、wait()、notify()方法)和线程通信。 7. **枚举和注解**:枚举是Java中...
此外,Windows Sockets规范还支持多线程的Windows进程,有助于编写出更稳定、高效的程序。 #### 二、Socket编程实例与应用场景 《简明Socket编程指南》不仅阐述了Socket编程的基础知识,还提供了一些实际的编程...