- 浏览: 216872 次
- 性别:
- 来自: 河南省
-
文章分类
最新评论
-
l379101003:
<div class="quote_title ...
spring mvc 接入微信公众平台 注解方式的写法 -
jtmjx:
你好,我也做了一个,可是Get与微信对接校验的可以,但是POS ...
spring mvc 接入微信公众平台 注解方式的写法 -
ileson:
windows mysql服务问题很奇怪,有可能建议大家迁移到 ...
MySql 使用总结
前言:
学习java 网络编程预备知识 socket、数据流、线程。
前两个都很容易解决,线程这块要下点功夫,还好java对这块有天生的优势。
学socket 之前要看一下tcp/udp 传输层协议,理解起来会有帮助,学数据流之前看一下 装饰模式 会对你成长大有裨益,学习线程之前还是先买本书吧。呵呵。
废话不说了,简单的例子,以激发自己学习兴趣:
怎么样?
是不是感觉咱们一直用的tomcat 你也会写了?呵呵,继续努力吧,说不定下一代高性能服务器软件由你开发!
------------------
服务器端:NetServer.java
客户端:NetClient.java
学习java 网络编程预备知识 socket、数据流、线程。
前两个都很容易解决,线程这块要下点功夫,还好java对这块有天生的优势。
学socket 之前要看一下tcp/udp 传输层协议,理解起来会有帮助,学数据流之前看一下 装饰模式 会对你成长大有裨益,学习线程之前还是先买本书吧。呵呵。
废话不说了,简单的例子,以激发自己学习兴趣:
import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 运行方法: 运行此类后,打开浏览器,地址栏中输入“http://127.0.0.1:8888”就可以看到效果! * * @author Administrator */ public class WebServer { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); while (true) { Socket s = ss.accept(); Service sc = new Service(s); Thread th = new Thread(sc); th.start(); } } catch (IOException e) { e.printStackTrace(); } } } /** * * 提供多线程服务 * @author Administrator * */ class Service implements Runnable { private Socket socket = null; public Service(Socket s) { this.socket = s;//new 对象时传递 Socket 对象 } @Override public void run() { try { PrintWriter pw = new PrintWriter(socket.getOutputStream()); pw.println("HTTP/1.0 200 OK");//封装http协议头 pw.println("Content-Type:text/html;charset=utf-8");//继续封装协议头 pw.println(); pw.println("<h1>Test Web Server Success!</h1>");//内容 pw.flush(); pw.close(); } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
怎么样?
是不是感觉咱们一直用的tomcat 你也会写了?呵呵,继续努力吧,说不定下一代高性能服务器软件由你开发!
------------------
服务器端:NetServer.java
package com.leson.net; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class NetServer { /** * 主线程。提供服务。 * @param args */ public static void main(String[] args) { NetServer ns = new NetServer(); ns.doListen(); } /** * 监听客户端socket发来的数据 */ public void doListen() { try { ServerSocket ss = new ServerSocket(12345); while (true) { Socket s = ss.accept(); new Thread(new Service(s)).start(); } } catch (IOException e) { System.out.println("doListen() throw error!"); e.printStackTrace(); } } } /** * 实现多线程。 * @author Administrator * */ class Service implements Runnable { private Socket socket = null; public Service(Socket socket) { this.socket = socket;// 函数构造时,初始化属性。 } /** * 逻辑代码,处理每个线程socket 的数据。 */ @Override public void run() { DataInputStream dis = null; try { dis = new DataInputStream(socket.getInputStream()); byte[] bytes = new byte[1024]; int n = dis.read(bytes); System.out.println(new String(bytes, 0, n)); } catch (IOException e1) { System.out.println("run() throw error!"); e1.printStackTrace(); } } }
客户端:NetClient.java
package com.leson.net; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; public class NetClient { /** * 发送数据 */ public static void sendData(String sendStr) { DataOutputStream dos = null; Socket s = null; try { s = new Socket("127.0.0.1", 12345); dos = new DataOutputStream(s.getOutputStream()); dos.write(sendStr.getBytes()); dos.close(); s.close(); } catch (IOException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { sendData("abcd|123456|张三李四手顶替"); } }
发表评论
-
web app native app hybrid app 简单区分
2014-10-31 19:54 865一、web app 简单入门 android we ... -
spring mvc 接入微信公众平台 注解方式的写法
2014-05-25 21:10 24513package com.meiparty.controll ... -
java 框架学习笔记
2014-05-17 21:21 688一、 mybatis3.2 1、遇到的一个问题:log4j 打 ... -
java 问题总结
2014-04-15 10:23 6680x001: An internal error occurr ... -
javah 生成头文件时报找不到类路径的解决办法
2013-09-04 22:11 1681一、问题描述: 用javah 生成头文件时,总是报错。 ... -
tomcat jvm调优
2013-04-23 19:01 886一、生产环境,性能测试。 环境概述: os:centos 6. ... -
CentOS 搭建各种服务
2013-01-12 01:52 1283一、安装JDK JDK下载地址: http://www.or ... -
sqlite 入门备忘
2012-08-19 17:34 1837初识sqlite 翻了好多资料。终于搞明白怎么回事了,记录一下 ... -
(转)JAVA的18条BASE
2010-01-08 16:03 145引用关于Java的基础知识 ... -
date 转成String ,String 转成date
2010-01-26 12:45 1305//Date类型转换为String Date now = ne ... -
java jdbc 事务管理
2010-02-04 10:27 1153切记:无论hibernate还是jdbc的事务控制都应在ser ... -
jstl/el 备忘
2010-02-04 10:57 810一、三目运算: ${p.QC_STAT==0?"& ... -
java struts1.2 MappingDispatchAction 对明细列表操作时让其停留在明细列表页面
2010-02-24 11:11 775中心思想:把展现明细所需条件一定要拼完整。MappingDis ... -
java 线程入门(备忘)
2010-04-06 09:37 749零、一些概念 共享变量:一个变量在多个线程的工作内存中 ... -
form表单 批量新增
2010-04-08 16:52 1160基本上网上全是转自他的文章:呵呵备忘! http://www ... -
java 数据源的选择
2010-04-23 17:12 799C3P0 dbcp druid -
Spring 框架
2010-06-03 18:43 909其它框架可以不学,但这个spring 一定要看,构建企业级应用 ... -
0.3+0.3+0.3=?
2010-08-24 09:02 840在java中不等于0.9 如果让其等于0.9 java处理 ... -
java 基础
2010-06-10 18:25 1017/** * 求a的n次方。 * @param a ...
相关推荐
Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...
Java网络编程是Java开发中的重要领域,它涵盖了网络应用程序的设计、实现和调试。在这个主题下,我们可以探讨多个关键知识点: 1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过...
《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...
Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...
"Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...
在本资料中,《Java网络编程》第三版提供了深入浅出的讲解,旨在帮助开发者提升对这一领域的理解。 1. **基础概念**: - **网络模型**:Java网络编程基于OSI七层模型和TCP/IP四层模型。理解这些模型有助于理解网络...