`
ileson
  • 浏览: 215410 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

java 网络编程

    博客分类:
  • 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|张三李四手顶替");
	}

}
分享到:
评论

相关推荐

    Java网络编程案例教程习题参考答案 .pdf

    Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...

    Java网络编程/Java网络编程实例

    Java网络编程是Java开发中的重要领域,它涵盖了网络应用程序的设计、实现和调试。在这个主题下,我们可以探讨多个关键知识点: 1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过...

    java网络编程第四版pdf

    《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...

    Java网络编程期末考试复习题库+答案

    Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...

    Java网络编程实验报告.pdf

    "Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...

    java网络编程

    在本资料中,《Java网络编程》第三版提供了深入浅出的讲解,旨在帮助开发者提升对这一领域的理解。 1. **基础概念**: - **网络模型**:Java网络编程基于OSI七层模型和TCP/IP四层模型。理解这些模型有助于理解网络...

    Java网络编程(第4版)PDF

    《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...

    [Java网络编程(第3版,2004)].(Java.Network.Prog.epub

    Java网络编程

    Java网络编程实践课程设计报告.pdf

    Java 网络编程实践课程设计报告 这是一份 Java 网络编程实践课程设计报告,旨在帮助学生掌握 Java 编程语言、图形化界面、多线程、网络和数据库等技术,并提高动手实践能力和书本知识学习。该课程设计报告涵盖了 ...

    Java网络编程实例(随书源代码)

    Java网络编程是开发分布式应用程序的关键技术,它允许程序通过网络发送和接收数据。《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种...

    Java网络编程精解(孙卫琴)电子教案

    《Java网络编程精解》是孙卫琴老师的一本经典教程,主要涵盖了Java语言在网络编程领域的深度解析。这本书深入浅出地介绍了如何使用Java进行网络通信,包括基本的TCP/IP协议、套接字编程、多线程技术以及HTTP、FTP等...

    java网络编程.pdf

    java网络编程.pdf

    《Java网络编程实例:Java网络编程实例》

    Java网络编程是开发分布式应用程序的关键技术,它使得Java程序能够与其他设备、系统和服务进行通信。本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点...

    Java网络编程资料

    Java网络编程是开发分布式应用程序的关键技术,它允许Java程序与其他计算机进行通信,实现数据的交换。这份"Java网络编程资料"包含三个重要的学习资源:关于Socket套接字的"Java套接字编程.chm"、关于网络协议特别是...

    Java网络编程.chm

    本资源为"Java网络编程.chm",是一本关于Java网络编程的电子书,以实例驱动的方式深入讲解了相关知识。 首先,我们要理解Java在网络编程中的基础——IO流。Java中的IO流分为字节流和字符流,它们用于读写数据,包括...

    java网络编程源码

    Java网络编程是Java开发中的重要领域,它涵盖了网络通信的所有基本概念和技术,包括TCP/IP协议栈、套接字(Socket)编程、多线程、数据传输格式等。孙卫琴的《java网络编程》一书深入浅出地讲解了这些核心概念,并...

    JAVA网络编程大全,pdf版

    《JAVA网络编程大全》是一本全面且深入介绍Java网络编程技术的权威著作,旨在帮助读者掌握Java在构建网络应用程序中的核心概念和实践技巧。PDF版的书籍为学习者提供了便捷的电子阅读体验,随时随地都能深化对Java...

    java网络编程 PPT

    Java网络编程是Java开发中的重要领域,主要用于实现应用程序之间的通信,包括客户端-服务器架构、分布式系统以及互联网数据传输。这份“java网络编程 PPT”来自清华大学,无疑为学习这一主题提供了权威的参考资料。...

    java网络编程经典的学习书籍

    《Java网络编程》是编程领域的经典著作,尤其对于学习Java网络编程的初学者及进阶者来说,这本书具有很高的参考价值。它详细介绍了如何利用Java语言进行网络通信,涵盖了网络编程的基本概念、协议以及实现方法。 一...

Global site tag (gtag.js) - Google Analytics