- 浏览: 467359 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
1,通用服务器代码:
可以直接用telnet客户端测试
或者测试的客户端程序:
2,利用1所写的基类,实现一个特殊的server
telnet端输入的字母,返回为大写的字母
package multiThread; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; //通用多线程服务器????????????????? public class MTServerBase extends Thread { // client protected Socket socket; // Here is the thread that does the work // Presumably you'll override this in the subclass public void run() { try { String s = "I'm a test server. Goodbye"; socket.getOutputStream().write(s.getBytes()); //发送给客户端 byte[] b = new byte[40]; //读客户端 socket.getInputStream().read(b); System.out.println("服务器端显示:"+new String(b)); socket.close(); } catch (Exception e) { System.out.println(e); } } public static void startServer(int port, Class clobj) { ServerSocket ssock; try { ssock = new ServerSocket(port); System.out.println("Listening..."); while (true) { Socket esock = null; try { esock = ssock.accept(); System.out.println("connected..."); // create new MTServerBase or subclass MTServerBase t = (MTServerBase) clobj.newInstance(); t.socket = esock; t.start(); } catch (Exception e) { try { esock.close(); } catch (Exception ec) { } } } } catch (IOException e) { } // if we return something is wrong! } //test main simple public static void main(String[] args) { System.out.println("Starting server on port 1234"); MTServerBase.startServer(1234, MTServerBase.class); } }
可以直接用telnet客户端测试
或者测试的客户端程序:
package multiThread; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket("localhost",1234); InputStream is = socket.getInputStream(); OutputStream out = socket.getOutputStream(); byte[] b = new byte[40]; is.read(b); String data = new String(b); System.out.println("客户端显示:"+data); out.write(("from client:"+data).getBytes()); //返回服务器 is.close(); socket.close(); } }
2,利用1所写的基类,实现一个特殊的server
package multiThread; import java.io.*; //使用基类组成另一个服务器的例子,将基类MTServerBase的main函数注释掉 public class UCServer extends MTServerBase { //socket是父类中继承来的,代表客户端 public void run() { try { InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); while (true) { char c = (char) is.read(); // end on Control+C or Control+D if (c == '\003' || c == '\004') break; os.write(Character.toUpperCase(c)); //为啥是返回telnet端,应该是服务器端才是啊???? } socket.close(); } catch (Exception e) { System.out.println(e); } } public static void main(String[] args) {//参数为端口号 int n = Integer.parseInt(args[0]); System.out.println("Starting server on port " + n); startServer(n, UCServer.class); } }
telnet端输入的字母,返回为大写的字母
发表评论
-
计算机网络知识
2011-06-01 16:19 791一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7119客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2879前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1591上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
java tcp socket实例
2010-12-01 13:44 1624网络编程的基本模型就是客户端到服务器端模型,一段必须提供一个固 ... -
telnet协议(转)
2010-10-14 17:17 1138我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1359当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)UDP
2010-10-14 09:24 1474UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51361,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18821,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 962FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1264ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1245SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4188这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1429本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 944用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 938Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1939package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1158用到的主要类DatagramPacket,DatagramSo ... -
jdk6.0从入门到精通-----chapter5网络编程 tcp连接池
2010-09-10 18:07 984package pool; import java.ne ...
相关推荐
总的来说,这个Java网络编程TCP多线程连接例子为我们提供了一个基础的框架,展示了如何使用Java实现可靠的TCP连接,并通过多线程处理并发请求。在深入学习和实践中,我们还可以结合其他Java网络库,如NIO(非阻塞I/O...
在IT行业中,网络编程是不可或缺的一部分,特别是在服务器端开发中,TCP协议因其可靠性和面向连接的特性被广泛应用。本文将详细讲解如何实现一个基于TCP的服务器端,特别是多线程技术在TCP服务器中的应用。 标题...
在Java网络编程中,TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP提供了一种可靠的数据传输服务,确保数据的正确顺序和完整性,非常适合文件传输。本教程将...
本项目"tcp_test.rar"似乎是一个关于Java实现TCP多线程传输的实例,它涵盖了发送方和接收方的并发处理。 首先,让我们了解TCP多线程的概念。在单线程TCP服务器中,服务器接收到一个客户端连接后,会阻塞等待该连接...
Java ATM 实现基于TCP协议与Oracle数据库的多线程应用是一个经典的计算机科学示例,它涵盖了网络编程、数据库操作和并发处理等多个核心IT知识点。在这个项目中,开发者使用Java语言来构建一个模拟自动取款机(ATM)...
Java TCP多线程通信是网络编程中的一个重要概念,它结合了Java的Socket编程与多线程技术,使得多个客户端能够同时与服务器进行交互。在Java中,TCP(传输控制协议)提供了一种可靠的数据传输方式,确保数据的有序、...
聊天室项目是学习Java网络编程和TCP协议的一个好例子,因为它涉及到多线程、异步通信和数据共享等核心概念。同时,你还可以在此基础上添加更多的功能,比如用户身份验证、私聊、文件传输等,进一步提升聊天室的实用...
在这个小Demo中,我们将深入探讨如何利用Java实现这两种协议的简单应用,以及如何在TCP服务器端使用多线程监听。 首先,TCP(传输控制协议)是一种面向连接的、可靠的协议,它保证了数据的顺序和完整性。在Java中,...
在实际应用中,多线程和网络编程常常结合使用,比如在服务器端,一个线程可以负责处理一个客户端的连接,多个线程则可以同时处理多个连接,提高服务的并发能力。但是,多线程并不总是最佳解决方案,有时使用异步I/O...
服务端会创建一个线程来监听新的连接,每当有新客户端连接时,就会创建一个新的线程来处理该客户端的通信,这就是TCP多线程的应用,这样可以保证服务端能够同时处理多个客户端的请求,提高了系统的并发性。...
在本项目中,"Java代码写的局域网多线程TCP、Socket多人聊天室winsock.zip" 是一个基于Java实现的局域网多用户聊天应用。这个应用利用了TCP(Transmission Control Protocol)协议和Socket编程,同时采用了多线程...
在Java编程语言中,多线程TCP查询是网络编程中的一个重要概念,主要涉及如何通过TCP协议在多个线程中处理客户端请求。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,...
在这个特定的项目中,开发者利用Java的多线程特性以及Socket编程来实现一个网络服务,该服务每十分钟会执行一次任务。下面我们将详细探讨这两个主题。 首先,Java中的多线程允许程序同时执行多个任务,提高资源利用...
本篇文章将聚焦于如何使用Java来实现多客户端与服务器端的TCP通信。 首先,我们需要理解TCP通信的基本原理。TCP提供了一种点对点的、全双工的数据通信方式,通过三次握手建立连接,然后进行数据传输,最后通过四次...
创建多线程TCP服务器时,我们需要创建一个服务器端的主线程,该线程监听客户端的连接。当有新的连接请求到来时,主线程不直接处理数据,而是创建一个新的线程来处理这个连接,这样就可以同时处理多个客户端的请求,...
在Java编程环境中,TCP(传输控制协议)网络连接的实现通常涉及到服务器端(Server)和客户端(Client)的通信。由于TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,因此在处理并发连接时,多线程技术就...
Java网络编程案例教程习题参考答案涵盖了Java网络编程的基础知识点,包括Socket编程、TCP/IP协议、Java Socket类、ServerSocket类、Java网络编程模型、网络编程常见问题、多线程编程、并发编程、Socket选项、网络...
【标题】"能注册的TCP多线程聊天室"是一个基于TCP/IP协议的网络通信程序,它具有用户注册功能,并且能够将用户信息保存到XML配置文件中。在这个系统中,多线程技术被用于提高服务性能和并发处理能力。 在TCP/IP通信...
这个项目是一个基于Java编程语言实现的聊天程序,它涵盖了网络通信中的两种主要协议——用户数据报协议(UDP)和传输控制协议(TCP),同时利用了多线程技术来提高程序的并发处理能力。在Java中,网络通信主要依赖于...
该项目提供了一个很好的学习平台,可以深入理解Java多线程和网络编程的实际应用,同时也能锻炼解决并发和网络通信问题的能力。通过对源码的分析和实践,开发者可以提升自己在这些核心领域的技术水平。