- 浏览: 1064696 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
转载:http://blog.csdn.net/kongxx/article/details/7259436
现在做Java直接使用Socket的情况是越来越少,因为有很多的选择可选,比如说可以用spring,其中就可以支持很多种远程连接的操作,另外jboss的remoting也是不错的选择,还有Apache的Mina等等,但是在有些时候一些特殊情况仍然逃脱不了直接写Socket的情况,比如公司内部一些莫名其妙的游戏规则。
废话不说了,下面就看看如果自己写Socket应该怎么做吧。
首先是写一个Server类,这个类用来监听10000端口,并从这个端口接收消息然后输出,当收到“bye”时退出。
- package com.googlecode.garbagecan.test.socket.sample1;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class MyServer {
- public static void main(String[] args) throws IOException {
- ServerSocket server = new ServerSocket(10000);
- Socket socket = server.accept();
- BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- PrintWriter out = new PrintWriter(socket.getOutputStream());
- while (true) {
- String msg = in.readLine();
- System.out.println(msg);
- out.println("Server received " + msg);
- out.flush();
- if (msg.equals("bye")) {
- break;
- }
- }
- socket.close();
- }
- }
然后是一个Client类,这个类连接上面启动的Server类,然后接收任何用户输入,当遇到回车时发送字符串到Server上,当输入“bye”是退出。
- package com.googlecode.garbagecan.test.socket.sample1;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.Socket;
- public class MyClient {
- public static void main(String[] args) throws Exception {
- Socket socket = new Socket("localhost", 10000);
- BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- PrintWriter out = new PrintWriter(socket.getOutputStream());
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- while (true) {
- String msg = reader.readLine();
- out.println(msg);
- out.flush();
- if (msg.equals("bye")) {
- break;
- }
- System.out.println(in.readLine());
- }
- socket.close();
- }
- }
最后,首先运行MyServer类,然后MyClient类,然后在MyClient的控制台输入任意字符,可以看到当输入bye是server和client都会退出。
发表评论
-
JVM调优总结
2019-07-10 17:14 367https://www.cnblogs.com/andy-zh ... -
JAVA RESULTSET 使用详解
2012-03-20 21:01 3151调用ResultSet中的last()方法时,提示: java ... -
JAVA采用JDBC执行批处理操作注意的问题
2012-03-20 20:50 1970让我们看看如何使用JDBC API在Java中执行批量插入。虽 ... -
java 各种加密算法详细比较
2012-03-15 11:07 2288本篇内容简要介绍BASE64、MD5、SHA、HMAC几种加密 ... -
java:大数据文件写入,读取,分割,排序,合并
2012-03-05 20:21 2026/** * 大数据排序合并 * * @param ar ... -
JAVA 连接池,方便在平时使用
2012-02-21 15:03 1027java连接池使用 -
Java动态代理实现
2012-02-28 09:19 995Java动态代理实现 在目前的Java开发包中包含 ... -
Java Socket实战之五 使用加密协议传输对象
2012-02-16 13:49 1119本文地址:http://blog.csdn.net/kongx ... -
Java Socket实战之四 传输压缩对象
2012-02-16 13:48 1006转载:http://blog.csdn.net/kongxx/ ... -
Java Socket实战之三 传输对象
2012-02-16 13:48 675转载:http://blog.csdn.net/kongxx/ ... -
Java Socket实战之二 多线程通信
2012-02-16 13:47 1146本文地址:http://blog.csdn.net/kongx ... -
java5 新增线程池的使用
2012-02-09 09:26 1150package net.itdos.concurrent; ... -
P2P之UDP穿透NAT的原理与实现
2012-01-11 11:03 1247关键词: P2P UDP NAT 原理 穿透 Traveral ... -
火车票网上订票软件
2012-01-11 09:05 1905JAVA程序GOHOME自动抢票成功!非常棒~~~不多说,直接 ... -
java tcp/ip 通讯服务端和客户端
2011-12-15 08:20 1348java tcp/ip 通讯服务端和客户端 -
java 读取服务器上的某个文件,并解决UTF-8 BOM文件的问号问题
2011-11-28 15:16 1418JAVA读取UTF-8 BOM文件的时候会在文件头产生一个?号 ... -
JAVA 多线程学习笔记
2011-10-12 09:03 1061JAVA 多线程学习笔记 -
XBlink 1.0.0版发布,更轻、更快、更好用
2011-10-09 14:47 1309XBlink 1.0.0版发布,更轻、更快、更好用。 ... -
db4o 文件整理(收缩)
2011-09-29 22:26 1469一直都不敢大胆使用db4o,不是因为它不好用,不稳定,而 ... -
网站应用通过139邮箱发送短信做到日志提醒功能
2011-09-15 09:36 1814首先在139注册一个邮箱,然后再邮箱设置中设置收到邮件通过短信 ...
相关推荐
7. **网络编程**:包括Socket编程,理解TCP和UDP协议,创建服务器端和客户端的通信程序。 8. **反射机制**:学习如何在运行时动态获取类的信息并操作类的对象,包括Class类的使用、构造函数、方法和字段的反射调用...
- Java NIO库(New I/O)提供了一种新的I/O模型,可以在单线程中高效处理多个连接,适合大量并发的服务器。 3. **SSL/TLS安全通信** - Java Socket支持SSL/TLS协议,通过`SSLSocket`和`SSLServerSocket`实现加密...
Java Socket是Java编程语言中用于网络通信的核心API,它提供了基于TCP/IP协议的低级网络编程接口。在Java中,Socket通常被用来实现客户端(Client)与服务器端(Server)之间的双向通信。在这个"java socket服务端和...
网络编程是Java的一大强项,书中的实战例子可能会涉及Socket编程,如何建立客户端与服务器之间的通信,以及使用HTTP协议发送和接收数据。此外,线程和并发处理也是Java开发中的重要课题,书中的实例会教授如何管理和...
《Java开发实战经典》是李兴华先生撰写的一本深入浅出的Java编程教程,旨在帮助初学者和有一定基础的开发者提升Java编程技能,并通过实战案例深入理解Java技术体系。这本书涵盖了许多重要的Java知识点,包括但不限于...
Socket是计算机网络中进程间通信的一种方式,它允许不同设备上的应用程序通过网络交换数据。本实战项目将教你如何创建一个能够接纳多个客户端连接的服务端程序,并且能够实时监控每个客户端的状态。 首先,我们来...
"Java开发实战1200例"可能还会包含Java的网络编程,讲解Socket通信、HTTP协议等,这对于开发Web应用或分布式系统非常有用。此外,数据库操作,如JDBC(Java Database Connectivity)的使用,也是必不可少的技能,书...
1. **面向对象编程**:Java的核心特性之一就是面向对象,你需要设计并实现类和对象,理解封装、继承和多态等概念。 2. **异常处理**:在处理彩票业务逻辑时,可能会遇到各种异常情况,如数据错误、网络问题等,学习...
《JAVA开发实战经典》是一本深入探讨Java编程技术的书籍,源代码的提供使得读者能够更直观地理解和学习书中的理论知识。Java是一种广泛应用的面向对象的编程语言,以其跨平台、高性能、安全性和可移植性等特性,在...
《JAVA开发实战经典》是一本深受开发者欢迎的书籍,它涵盖了Java编程的众多核心概念和技术。这本书的源代码提供了一种实践和学习Java编程的宝贵资源。以下将围绕Java编程的关键知识点进行详细阐述: 1. **Java语言...
Java开发实战是一个面向初学者的实践项目集合,涵盖了多种阶段性的成果,既有正在开发中的半成品,也有已经完成的成品项目。这样的学习资源对于新手来说非常有价值,因为它提供了实际编程经验,有助于理论知识与实际...
Java语言是目前世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。金桥java软件工程师培训中心推出的这91道经典实战题旨在帮助学员深入理解和掌握Java语言的核心概念与技术。以下是对这些实战题目的...
此外,Java NIO(非阻塞I/O)提供了一种更高效的数据处理方式,通过`Selector`、`Channel`和`Buffer`等类,可以在单线程中处理多个连接,显著提高了网络编程的性能。 在实际项目中,Java网络编程还涉及到异常处理、...
6. **网络编程**:Java的Socket编程允许创建客户端和服务端应用,实现网络通信。案例可能涉及TCP和UDP协议的使用。 7. **数据库操作**:Java与数据库的交互通常使用JDBC(Java Database Connectivity)。书中可能...
《Java开发实战1200例》是一本深入实践的编程书籍,专注于通过大量实例来提升读者的Java编程技能。书中的例子涵盖了基础语法、面向对象编程、异常处理、集合框架、多线程、网络编程、数据库操作、GUI设计等多个核心...
总之,Java开发实战从入门到精通的第19章将带你全面探索Java在网络编程领域的强大功能,从基础的Socket通信到高级的并发和安全策略,每一步都将加深你对网络编程的理解,提升你的开发技能。通过视频教程的形式,学习...
- Java NIO(New I/O)提供了更高效的I/O模型,可以实现单线程处理多个客户端连接,使用Selector和Channel等组件。 - 对于高并发场景,NIO可以显著提升性能。 7. **SSL/TLS安全套接层** - Java提供JSSE(Java ...
在Java编程领域,Socket通信和Spring框架的整合是构建分布式系统和实时应用的重要技术。本实例探讨了如何在Spring环境中利用Socket进行网络通信,以实现客户端和服务端的交互。由于提供的压缩包“socket_spring”中...
《Java开发实战经典》是李兴华撰写的一本关于Java编程的著作,旨在帮助读者深入理解和掌握Java开发技术。第九章的源码是该书的一个重要组成部分,它提供了实际编程练习和示例,以帮助读者将理论知识转化为实践能力。...
Java NIO库提供了一种更有效的方式来处理Socket通信,尤其是对于高并发场景。它引入了选择器(Selector)和通道(Channel)的概念,允许单线程管理多个连接。 九、实战示例 压缩包中的"Java TCP/IP Socket编程.pdf...