- 浏览: 415344 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
skying007:
...
Mysql coalesce() 函数认识和用法 -
kchiu:
关于这个心跳的发送和接收 晚上全是the fuccking s ...
socket心跳检测 -
bjsq618:
你的想法在大的物流公司已经实现了,只不过他们使用是GPS定位
ddd -
jiaguwen123:
2,AuthenticationHandler类的写法
pa ...
xfire客户端 -
sornor:
总结的不错哟!
Java中的函数yield(),sleep()和wait()的区别
项目大量用到了网络通信内容,自己学习了一下.写了一个java Socket实例.还写了比较详细的注释.以方便以后的阅读.代码实现的功能是服务器段打开之后监听一个端口,当有客户端访问该服务器端时,就建立客户端与服务器端的联系.支持多个客户端与服务器进行连接.然后客户端输入信息.服务器可以针对客户端进行回复.
文件一: SocketServer.java ----> Socket服务器端
package com.huameng.socket.next;
import java.net.ServerSocket;
/**
* 服务器端Socket
*
* @author Administrator
*
*/
public class SocketServer {
/**
* 服务器端Socket构造方法
*/
public SocketServer() {
try {
int clientcount = 0; // 统计客户端总数
boolean listening = true; // 是否对客户端进行监听
ServerSocket server = null; // 服务器端Socket对象
try {
// 创建一个ServerSocket在端口2121监听客户请求
server = new ServerSocket(2121);
System.out.println("Server starts...");
} catch (Exception e) {
System.out.println("Can not listen to. " + e);
}
while (listening) {
// 客户端计数
clientcount++;
// 监听到客户请求,根据得到的Socket对象和客户计数创建服务线程,并启动之
new ServerThread(server.accept(), clientcount).start();
}
} catch (Exception e) {
System.out.println("Error. " + e);
}
}
/**
* 主方法
*
* @param args
*/
public static void main(String[] args) {
new SocketServer();
}
}
文件二: ServerThread.java ----> 服务器监控器
package com.huameng.socket.next;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ServerThread extends Thread {
private static int number = 0; // 保存本进程的客户计数
Socket socket = null; // 保存与本线程相关的Socket对象
public ServerThread(Socket socket, int clientnum) {
this.socket = socket;
number = clientnum;
System.out.println("当前在线的用户数: " + number);
}
public void run() {
try {
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
// 由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter out = new PrintWriter(socket.getOutputStream());
// 由系统标准输入设备构造BufferedReader对象
BufferedReader sysin = new BufferedReader(new InputStreamReader(
System.in));
// 在标准输出上打印从客户端读入的字符串
System.out.println("[Client " + number + "]: " + in.readLine());
String line; // 保存一行内容
// 从标准输入读入一字符串
line = sysin.readLine();
while (!line.equals("bye")) { // 如果该字符串为 "bye",则停止循环
// 向客户端输出该字符串
out.println(line);
// 刷新输出流,使Client马上收到该字符串
out.flush();
// 在系统标准输出上打印读入的字符串
System.out.println("[Server]: " + line);
// 从Client读入一字符串,并打印到标准输出上
System.out.println("[Client " + number + "]: " + in.readLine());
// 从系统标准输入读入一字符串
line = sysin.readLine();
}
out.close(); // 关闭Socket输出流
in.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
} catch (Exception e) {
System.out.println("Error. " + e);
}
}
}
文件三: ScoketClient.java ----> Scoket客户端
package com.huameng.socket.next;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* 客户端Socket
*
* @author Administrator
*
*/
public class SocketClient {
/**
* 客户端Socket构造方法
*/
public SocketClient() {
try {
// 向本机的2121端口发出客户请求
Socket socket = new Socket("localhost", 2121);
System.out.println("Established a connection...");
// 由系统标准输入设备构造BufferedReader对象
BufferedReader sysin = new BufferedReader(new InputStreamReader(
System.in));
// 由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter out = new PrintWriter(socket.getOutputStream());
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String line; // 保存一行内容
// 从系统标准输入读入一字符串
line = sysin.readLine();
while (!line.equals("bye")) { // 若从标准输入读入的字符串为 "bye"则停止循环
// 将从系统标准输入读入的字符串输出到Server
out.println(line);
// 刷新输出流,使Server马上收到该字符串
out.flush();
// 在系统标准输出上打印读入的字符串
System.out.println("[Client]: " + line);
// 从Server读入一字符串,并打印到标准输出上
System.out.println("[Server]: " + in.readLine());
// 从系统标准输入读入一字符串
line = sysin.readLine();
}
out.close(); // 关闭Socket输出流
in.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
} catch (Exception e) {
System.out.println("Error. " + e);
}
}
/**
* 主方法
*
* @param args
*/
public static void main(String[] args) {
new SocketClient();
}
}
发表评论
-
list.toArray方法
2012-09-16 11:40 1583String[] addressesArray = addre ... -
一个关于自己定义的类,做为hashMap的key对象的例子
2012-09-02 21:39 6834package iss.com.equals; impo ... -
java中++和+=的执行原理有什么不同?
2012-06-16 13:24 5733i+=1 运行的底层Heap申请一个区域存放i,在数据区域开劈 ... -
java socket类的异常总结
2012-01-18 14:22 13831.java.net.SocketTimeoutExcepti ... -
客户端套接字(Socket)的超时
2012-01-17 11:57 2700客户端套接字的超时(timeout)就是指在客户端通过Sock ... -
socket编程的注意事项
2012-01-17 11:25 981socket编程的注意事项: 1.连接超时 不推荐的 ... -
xfire客户端
2011-12-03 18:28 6203转自:http://blog.csdn.net/x ... -
webservice
2011-11-23 23:01 1011import org.codehaus.xfire.clien ... -
Errors running builder 'JavaScript Validator'
2011-08-07 09:41 1474跑java程序时提示错误: Errors occurred d ... -
RMI
2011-07-29 20:41 932RMI是Java对象进行远程访问的一种规范——也就是说,从Ja ... -
关于求解关键路径相关计算一个简单总结
2011-07-12 11:00 1840今天的【每日一练】中,我出了关键路径的题,这中类型的题是高级中 ... -
Java静态检测工具的简单介绍
2011-06-19 11:01 1539静态检查:静态测试包括代码检查、静态结构分析、代码质量度量等。 ... -
把IP地址压缩成4字节数组的方法
2011-05-15 19:51 5690public class TestIPEnCode exten ... -
&0xff作用
2011-05-09 20:31 2403byte是一个有符号数可以表示-128~+127,但是作为一个 ... -
TCP与UDP区别
2011-05-04 21:12 2494两种不同的协议而已,UDP实现起来相对比TCP更加的简单. T ... -
数据包和数据帧各是什么,它们有什么不同
2011-05-04 20:46 2220数据包: “包 ... -
ThreadPoolExecutor
2011-04-26 00:39 2408从 Java 5 开始,Java 提供 ... -
线程--BlockingQueue
2011-04-26 00:28 784本例介绍一个特殊的队列:BlockingQueue,如果Blo ... -
socket心跳检测
2011-04-13 23:43 10191一、什么是心跳检测 判断对方(设备,进程或其它网元)是否正常 ... -
CRC解释
2011-04-11 23:03 1893数据通信中应用最广的一种检验差错方法。方法是在发送端用数学方法 ...
相关推荐
### 标题解析:西安电子科技大学-通信网络实验报告(二)Socket编程范例 此标题表明了该实验报告为系列实验中的第二部分,主要聚焦于Socket编程的应用实例。在通信领域,尤其是网络编程中,Socket是一种非常重要的...
本篇将详细讲解标题为“标准c语言_socket编程_范例”的知识点,以及描述中提到的server端和client端的实现。 1. **Socket基本概念**: Socket是操作系统提供的一种进程间通信(IPC)机制,尤其适用于网络通信。在...
在VB.NET编程环境中,Socket通信是一种基础且强大的网络通信方式,尤其在TCP/IP协议栈上。本示例将深入探讨如何使用VB.NET实现基于TCP/IP的Socket通信,这对于开发网络应用,如聊天室、文件传输等是至关重要的。 ...
socket编程的简单例子,属于socket编程入门级(本人正在学习中),感兴趣的朋友可以下载看看。 程序在ubuntu9.04下编译的,因为类库的不同,windows下VC编程调试通不过。
VC MFC Socket编程,这里面不至一个例子,最后做出了一个简单的MFC Socket 聊天室例子,来进一步演示MFC Socket编程的技术细节,对于VC 初学者是非常不错的参考范例。 CDialog::OnInitDialog(); CSocket sock...
Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用...
Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的网络通信。在本篇文章中,我们将深入探讨Socket范例,特别是通过源代码的方式来理解其工作原理和应用。 首先,Socket是网络编程的基础,它提供了一种...
本话题将深入探讨“Win CE与Windows XP Socket通讯范例”,这涉及到Windows CE(一种嵌入式操作系统)与Windows XP(个人计算机上的操作系统)之间的网络通信,通过Socket编程实现数据交换。以下是关于这个主题的...
在"C#经典编程范例50讲"中,您将深入探索C#这门强大而灵活的编程语言,掌握各种核心概念和高级技巧。C#是Microsoft开发的一种面向对象的编程语言,广泛应用于Windows应用程序、游戏开发、Web应用以及移动应用等领域...
socket编程示例;有server 和 client两种模式;包含全部源码,是vc++ socket编程的范例
Java编程通用范例是开发者们在进行Java编程时经常会参考的一种资源,它包含了各种常见问题的解决方案和最佳实践。这份资料旨在提供一个可嵌套到实际项目中的代码库,帮助开发者快速解决遇到的问题,提高开发效率。...
此文档是本人参考网上资料,对Socket编程的总结文档,包含一些代码范例,总体分为:Windows下Socket编程、Linux下Socket编程、socket缓冲区&阻塞模式、基于TCP/UDP协议的Scoket编程,非常有助于初学者更好的理解...
在IT领域,Socket编程是网络通信的核心技术之一,特别是在C语言环境下,它的应用广泛且深入。本篇将详细解析标题和描述中...通过实践这些范例,开发者可以更好地掌握Socket编程,并为更复杂的网络应用打下坚实基础。
本资源“windows socket编程源码”提供了一个初学者学习Winsock编程的范例,对于想要深入理解网络编程的人来说,这是一个很好的起点。 首先,让我们了解一下Winsock的基本概念: 1. **Winsock初始化**:在使用...
《C++网络编程范例——基于VC++ SOCKET TCP/IP通讯》 在计算机科学领域,网络编程是连接不同设备,实现数据传输的关键技术。C++作为一门强大的编程语言,结合Windows平台上的VC++环境,可以构建高效且可靠的网络...
本篇文章将深入探讨“EVC tcpip 编程范例”,并基于EVC 4.0的环境,详细解析如何进行TCP/IP编程。 首先,TCP/IP协议栈是互联网的基础,它由多个层次的协议组成,包括应用层、传输层、网络层和数据链路层。TCP...
Socket编程是计算机网络通信中的重要技术,主要用于实现进程间的网络通信。在这个示例中,我们有两个文件:`socketTCPclient.cpp` 和 `socketTCPserver.cpp`,分别代表聊天软件的客户端和服务端。以下是对这两个文件...
PB Socket范例主要涉及到的是Protocol Buffers(简称PB)与Socket编程的结合应用。Protocol Buffers是Google开发的一种数据序列化协议,它提供了一种高效、灵活且平台无关的方式来序列化结构化数据,常用于网络通信...
本文将通过各种具体的编程范例,帮助读者深入理解Linux文件操作的各个方面,并通过实践加深对Shell编程范例的理解。通过本章内容的学习,读者能够更好地使用Shell进行文件操作,编写出高效、稳定的脚本来自动化管理...