- 浏览: 154025 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
package com.jdk.api.test;
import java.io.DataInputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class WebServer{
public static void main(String args[]) throws Exception
{
int i=1,PORT=8080;
ServerSocket server=null;
Socket client=null;
server=new ServerSocket(PORT);
System.out.println("Web Server is listening on port"+String.valueOf(server.getLocalPort()));
while(true){
client=server.accept();
System.out.println("有一个浏览器访问我了!!");
new Connection(client).start();
}
}
}
class Connection extends Thread{
Socket client;
public Connection(Socket cl){
client=cl;
}
public void run(){
try{
PrintStream outstream=new PrintStream(client.getOutputStream());
DataInputStream instream = new DataInputStream(client.getInputStream());
StringBuilder sb = new StringBuilder();
String inline = null;
/**
* instream.readLine() 是阻塞的,
* 应该使用instream.available()判断是否有可用的流可以读取
*
*/
while((inline =instream.readLine())!= null && instream.available()>0 ){
System.out.println("------------------------");
sb.append(inline);
}
System.out.println("receive:"+sb);
String ss = sb.toString();
System.out.println("ss:"+ss);
byte buf[]=ss.getBytes();
System.out.println("lenth:"+buf.length);
outstream.write(buf,0, buf.length-1);
outstream.flush();
outstream.close();
client.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
import java.io.DataInputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class WebServer{
public static void main(String args[]) throws Exception
{
int i=1,PORT=8080;
ServerSocket server=null;
Socket client=null;
server=new ServerSocket(PORT);
System.out.println("Web Server is listening on port"+String.valueOf(server.getLocalPort()));
while(true){
client=server.accept();
System.out.println("有一个浏览器访问我了!!");
new Connection(client).start();
}
}
}
class Connection extends Thread{
Socket client;
public Connection(Socket cl){
client=cl;
}
public void run(){
try{
PrintStream outstream=new PrintStream(client.getOutputStream());
DataInputStream instream = new DataInputStream(client.getInputStream());
StringBuilder sb = new StringBuilder();
String inline = null;
/**
* instream.readLine() 是阻塞的,
* 应该使用instream.available()判断是否有可用的流可以读取
*
*/
while((inline =instream.readLine())!= null && instream.available()>0 ){
System.out.println("------------------------");
sb.append(inline);
}
System.out.println("receive:"+sb);
String ss = sb.toString();
System.out.println("ss:"+ss);
byte buf[]=ss.getBytes();
System.out.println("lenth:"+buf.length);
outstream.write(buf,0, buf.length-1);
outstream.flush();
outstream.close();
client.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
发表评论
-
java 栈内存解惑
2013-10-23 23:41 676int j = 0; j = j++; ... -
Google Guava Collections 使用介绍
2013-07-16 18:10 713Google Guava Collections 使用介绍 J ... -
Google Collections(Guava)中强大的Concurrent MapMaker
2013-07-16 18:07 1364仔细研究了刚发布1.0版本的Google Collection ... -
java wait 研究
2013-06-28 17:07 780[color=red]java wait 的使用必须放在实例对 ... -
java钩子函数的使用已经kill
2013-06-27 22:31 1557package com.aircoder.test; imp ... -
java获取所有的线程信息
2013-06-24 20:02 1604public class T2 { public sta ... -
java 获取mysql datetime 时间注意
2013-05-16 14:43 1522class SPubinfo implements RowMa ... -
java wait的解锁理解********
2013-04-18 10:49 947很多书都说wait会释放线程加的锁,其实经过试验不是这样的, ... -
jvm 关闭处理注册方法
2013-04-08 16:11 761import java.lang.*; public cla ... -
wget ftp 下载文件java代码
2013-04-05 15:16 1160private boolean wget(String fil ... -
xPath 解析xml
2013-04-05 15:14 739使用xPath 根据路径解析文件. xpath 具有多个版本。 ... -
java callable疑惑:
2013-04-05 15:12 585看了 线程持的源码和Futuretask的源码终于明白了 Fu ... -
ubuntu eclipse 问题
2013-04-05 03:30 795Eclipse 3.6 在 Ubuntu 10.04 下会出现 ... -
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
2013-03-27 16:47 2549LockSupport.park(); 停止 Sy ... -
ehchahe 例子
2013-01-23 15:40 1018package test; import net.sf.eh ... -
java 类加载
2012-12-24 15:21 7601: 访问一个类的静态方法的时候。不会引起一个类的初始化,即类 ... -
java 获取图片高和宽
2012-12-13 17:01 1402public static Map<String,Int ... -
schedulePool.scheduleAtFixedRate 是个误解
2012-11-22 20:34 1246我们经常使用的java定时器单线程执行,例如: 一个任务每个 ... -
ExecutorCompletionService
2012-11-19 22:36 714package com.jdk.api; import ja ...
相关推荐
总之,Java Socket结合HTTP协议知识,可以构建出基础的Web服务器,以响应浏览器的请求并返回数据。这种实践有助于深入理解网络编程和HTTP协议的工作机制。通过这样的例子,开发者可以更好地掌握Java网络编程技术,并...
其中,Java Swing或JavaFX库可用于构建UI,Java的Socket类和HttpURLConnection类则用于处理网络请求,而HTML和CSS的解析则可能需要自定义的解析器或者使用开源的解析库如Jsoup。 在Java浏览器的实现中,线程管理是...
在Java中,Socket类是用于实现TCP/IP通信的核心类,它允许服务器监听客户端的连接,并通过Socket实例与客户端建立通信。HTTP服务器通常监听80端口,但在这个示例中,我们可能会使用localhost的非标准端口来避免与已...
1. **网络通信**:使用Java的Socket或者HttpURLConnection类来建立与WAP服务器的连接,发送HTTP请求并接收响应数据。这通常涉及到URL解析、HTTP协议的理解以及数据编码解码等。 2. **解析HTML/WML**:WAP页面主要...
使用Java的Socket编程或者HttpURLConnection类进行网络请求,解析HTML页面;可能还涉及到线程管理,例如在一个单独的线程中加载网页以防止阻塞UI。这个项目的真实性意味着你可以直接应用这些知识到实际的开发中,...
JAVA提供了java.net包,包含Socket、ServerSocket、URL等类,使得开发者能够方便地进行网络通信,发送HTTP请求到服务器,接收响应的数据。 其次,HTML源码的解析是浏览器的关键部分。JAVA的开源库如Jsoup或者自定义...
在这个场景中,我们讨论的是如何使用Java Socket实现一个简单的HTTP服务器,它能够接收来自Web浏览器的请求,并返回HTML文本和二进制数据(如图片)。 首先,HTTP服务器的基本工作流程是这样的:当用户在浏览器中...
2. Socket连接:使用`java.net.Socket`类建立与服务器的TCP连接,实现数据传输。 3. HTTP请求构造:根据HTTP协议规范,构建GET或POST等请求头和请求体。 4. 数据读写:通过`Socket`的输入/输出流进行数据的读写,将...
在构建浏览器时,你需要使用`java.net.URL`类来解析和打开网页URL,通过HttpURLConnection或者HttpClient发起HTTP请求获取网页数据。 2. **HTTP协议理解**:HTTP(超文本传输协议)是互联网上应用最为广泛的一种...
这涉及到Java的Socket编程或HttpURLConnection类。通过这些类,我们可以构造HTTP GET请求,连接到指定的URL,并接收服务器返回的HTML响应。对于HTTPS协议,还需要处理SSL/TLS加密。 HTML解析是另一个关键部分。虽然...
socket 的典型应用就是 Web 服务器和浏览器:浏览器获取用户输入的 URL,向服务器发起请求,服务器分析接收到的 URL,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,就将文字、图片、视频等元素呈现给用户...
深入研究这些文件,我们可以了解如何使用Java的Socket编程、线程管理、GUI组件(如Swing或JavaFX)以及可能的第三方库(如WebKit或Gecko)来构建一个完整的浏览器。 总结来说,这个项目是一个使用Java编程语言实现...
Java制作的浏览器是一种基于Java语言开发的Web浏览应用程序。它利用Java的跨平台特性,可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。Java浏览器通常由一系列核心组件构成,如HTML解析器、JavaScript...
当浏览器向服务器发送HTTP GET或POST请求时,服务器会解析这些请求,然后通过Socket返回相应的HTML、CSS、JavaScript等资源,使得浏览器能够渲染并显示网页内容。 然而,传统的HTTP协议存在一些限制,例如它不支持...
采用JAVA的socket实现http协议,模拟浏览器访问服务端。
3. **网络编程**:浏览器的核心功能是与Web服务器通信,这涉及到Java的Socket编程或者HttpURLConnection类。理解HTTP协议,如GET和POST请求,以及如何解析响应数据是必要的。 4. **HTML、CSS和JavaScript解析**:...
在本项目中,我们利用Java的Socket API构建了一个基本的服务器,该服务器仅处理HTTP GET请求并返回静态文件内容。下面将详细解释其中涉及的知识点。 1. **Java Socket**: Java Socket是Java提供的网络通信接口,它...
- **Socket编程**:使用Java的Socket类进行网络通信,创建TCP连接以发送和接收数据。 2. **HTML解析**: - **DOM解析**:HTML文档可以通过Java的DOM解析器(如Jsoup库)转换为一个可操作的树形结构,从而能够查找...
socket 的典型应用就是 Web 服务器和浏览器:浏览器获取用户输入的 URL,向服务器发起请求,服务器分析接收到的 URL,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,就将文字、图片、视频等元素呈现给用户...
Java TCPIP Socket编程是Java开发语言在后端服务中实现网络通信的重要技术,它基于Apache等开源库提供了丰富的API来创建高效、可靠的网络连接。本章将深入探讨Socket编程的基本概念和实现方法。 1. 计算机网络、...