- 浏览: 184558 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (103)
- Java综合 (19)
- java模式 (1)
- java 包详解 (8)
- 需要阅读的书目 (1)
- Json (1)
- MySQL (2)
- zkoss (2)
- svn (1)
- JavaScript (1)
- html (1)
- 试题集锦 (6)
- 试题集锦_poj (1)
- Vim 操作 (2)
- Linux 操作 (5)
- NS2 学习 (2)
- 网络 (4)
- c/c++ (7)
- WNS - Wired Network Simulator (1)
- 网络信息体系结构 (16)
- MIPS (1)
- Java图形化编程 (2)
- 数据结构 (1)
- 数学 (3)
- 爬虫 (1)
- 搜索引擎 (1)
- NetFPGA (1)
- Directshow (1)
- 小软件 (2)
- FFMPEG (1)
- Windows Socket 网络编程 (5)
- Git (1)
- IntelliJ IDEA (0)
- Plone (1)
- Python (1)
最新评论
-
不要叫我杨过:
受教了,高手
Heritrix架构分析 -
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene 3.0.2 使用入门 -
zxw961346704:
值得学习的算法
Java 计算器 -
medicine:
Thread.sleep(1000); 会使线程进入 TIM ...
Java.lang.Thread 和 Java.lang.ThreadGroup -
tangzlboy:
嗯,不错!收藏。
Java 入门
1. URL
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。有关 URL 的类型和格式的更多信息,可从以下位置找到:
http://www.socs.uts.edu.au/MosaicDocs-old/url-primer.html
通常,URL 可分成几个部分。上面的 URL 示例指示使用的协议为 http (超文本传输协议)并且该信息驻留在一台名为 www.socs.uts.edu.au 的主机上。主机上的信息名称为 /MosaicDocs-old/url-primer.html。主机上此名称的准确含义取决于协议和主机。该信息一般存储在文件中,但可以随时生成。该 URL 的这一部分称为路径 部分。
URL 可选择指定一个“端口”,它是用于建立到远程主机 TCP 连接的端口号。如果未指定该端口号,则使用协议默认的端口。例如,http 协议的默认端口为 80。还可以指定一个备用端口,如下所示:
http://www.socs.uts.edu.au:80/MosaicDocs-old/url-primer.html
下面是一个在百度搜索Java时的一些信息反馈。
结果:
httpStr: http://www.baidu.com/s?wd=Java
authority: www.baidu.com
content: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@157f0dc
port: 80
file: /s?wd=Java
host: www.baidu.com
path: /s
protocol: http
query: wd=Java
ref: null
userinfo: null
-------------------- get the content --------------------
<!DOCTYPE html><!--STATUS OK--><html><head>
<meta http-equiv="X-UA-Compatible" content="IE=7">
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<title>百度搜索_Java </title>
<style>
body,td,.p1,.p2,.i{font-family:arial}
body{margin:0;padding:6px 0 0 0;background-color:#fff;color:#000;position:relative}
input{padding-top:0;padding-bottom:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;}
table{border:0}
...
(内容很多,省略。。)
2. Socket通信(以简单的通信为例)
服务器端将客户端输入的信息以大写的形式返给客户端。
输出结果:
客户端:
---- type quit or exit to disconnect to the server ----
hello server
HELLO SERVER
i am hanyuanbo
I AM HANYUANBO
exit
Bye
Now is disconnected from server...
服务器端:
---- The server is waiting for the clients to connect ----
Connected to one client ...
Disconnected to one client.
运行以及显示过程:
(1). 服务器短开启程序。 这样在服务器端会有---- The server is waiting for the clients to connect ----的显示。
(2). 客户端开启程序。 这样在客户端会有---- type quit or exit to disconnect to the server ----的显示。同时服务器端会有Connected to one client ... 的显示。
(3). 当客户端输入数据的时候,同时会显示输入信息的大写形式从服务器端返回。这是服务器端没有任何显示。
(4). 当客户端输入exit的时候,客户端会有Bye的显示,同时会显示Now is disconnected from server...。在服务器端也会有Disconnected to one client.的显示。
3. 关于net中的DatagramSocket 和 DatagramPacket对于UDP的支持。
以下面简短的例子来说明。主要是用到了socket 中的send 和 receive方法。
结果:
(客户端)
Enter quit or exit to stop
nihao
NIHAO
hello
HELLO
hanyuanbo
HANYUANBO
quit
(服务器端)
---- The Server is running ----
nihao
hello
hanyuanbo
运行过程:
(1) 运行server程序,程序会打印出---- The Server is running ----。
(2) 运行client程序,程序会打印出Enter quit or exit to stop。
(3) 每当用户敲入内容,在客户端会返回大写,而在服务器端会显示用户的输入内容。
(4) 当用户输入quit(或者exit)时,客户端退出。
4.
5.
6.
7.
8.
9.
10.
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。有关 URL 的类型和格式的更多信息,可从以下位置找到:
http://www.socs.uts.edu.au/MosaicDocs-old/url-primer.html
通常,URL 可分成几个部分。上面的 URL 示例指示使用的协议为 http (超文本传输协议)并且该信息驻留在一台名为 www.socs.uts.edu.au 的主机上。主机上的信息名称为 /MosaicDocs-old/url-primer.html。主机上此名称的准确含义取决于协议和主机。该信息一般存储在文件中,但可以随时生成。该 URL 的这一部分称为路径 部分。
URL 可选择指定一个“端口”,它是用于建立到远程主机 TCP 连接的端口号。如果未指定该端口号,则使用协议默认的端口。例如,http 协议的默认端口为 80。还可以指定一个备用端口,如下所示:
http://www.socs.uts.edu.au:80/MosaicDocs-old/url-primer.html
下面是一个在百度搜索Java时的一些信息反馈。
package com.java.net; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; /** * 通过连接百度来读取相关内容 * @author Yuanbo Han * */ public class _URL { public static void main(String[] args) throws IOException { String httpStr = "http://www.baidu.com/s?wd=Java"; URL url = new URL(httpStr); System.out.println("httpStr:\t" + httpStr); System.out.println("authority:\t" + url.getAuthority()); System.out.println("content:\t" + url.getContent()); System.out.println("port:\t\t" + url.getDefaultPort()); System.out.println("file:\t\t" + url.getFile()); System.out.println("host:\t\t" + url.getHost()); System.out.println("path:\t\t" + url.getPath()); System.out.println("protocol:\t" + url.getProtocol()); System.out.println("query:\t\t" + url.getQuery()); System.out.println("ref:\t\t" + url.getRef()); System.out.println("userinfo:\t" + url.getUserInfo()); System.out.println("\n\n-------------------- get the content --------------------"); BufferedReader reader = null; try { String line = ""; reader = new BufferedReader(new InputStreamReader(url.openStream())); while((line = reader.readLine()) != null){ System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } finally{ if(reader != null){ try { reader.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
结果:
httpStr: http://www.baidu.com/s?wd=Java
authority: www.baidu.com
content: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@157f0dc
port: 80
file: /s?wd=Java
host: www.baidu.com
path: /s
protocol: http
query: wd=Java
ref: null
userinfo: null
-------------------- get the content --------------------
<!DOCTYPE html><!--STATUS OK--><html><head>
<meta http-equiv="X-UA-Compatible" content="IE=7">
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<title>百度搜索_Java </title>
<style>
body,td,.p1,.p2,.i{font-family:arial}
body{margin:0;padding:6px 0 0 0;background-color:#fff;color:#000;position:relative}
input{padding-top:0;padding-bottom:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;}
table{border:0}
...
(内容很多,省略。。)
2. Socket通信(以简单的通信为例)
服务器端将客户端输入的信息以大写的形式返给客户端。
package com.java.net; import java.io.IOException; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Client { public static void echo(){ Socket socket = null; try { socket = new Socket("localhost",4444); Scanner fromServer = new Scanner(socket.getInputStream()); System.out.println(fromServer.nextLine());//打印服务器给用户的提示信息 PrintStream toServer = new PrintStream(socket.getOutputStream(), true); Scanner in = new Scanner(System.in); while(in.hasNextLine()){ String input = in.nextLine(); toServer.println(input); String output = fromServer.nextLine(); System.out.println(output); if(output.toLowerCase().equals("bye")){ System.out.println("\nNow is disconnected from server..."); break; } } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try { if(socket != null){ socket.close(); } } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { echo(); } }
package com.java.net; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Server { public static void waitForConnect(){ System.out.println("---- The server is waiting for the clients to connect ----"); ServerSocket server = null; try { server = new ServerSocket(4444); Socket client = server.accept(); System.out.println("Connected to one client ..."); PrintWriter toClient = new PrintWriter(client.getOutputStream(),true); toClient.println("---- type quit or exit to disconnect to the server ----"); Scanner fromClient = new Scanner(client.getInputStream()); while(fromClient.hasNextLine()){ String line = fromClient.nextLine(); if(line.toLowerCase().equals("quit") || line.toLowerCase().equals("exit")){ toClient.println("Bye"); System.out.println("Disconnected to one client."); break; } toClient.println(line.toUpperCase()); } } catch (IOException e) { e.printStackTrace(); } finally{ try { if(server != null){ server.close(); } } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { waitForConnect(); } }
输出结果:
客户端:
---- type quit or exit to disconnect to the server ----
hello server
HELLO SERVER
i am hanyuanbo
I AM HANYUANBO
exit
Bye
Now is disconnected from server...
服务器端:
---- The server is waiting for the clients to connect ----
Connected to one client ...
Disconnected to one client.
运行以及显示过程:
(1). 服务器短开启程序。 这样在服务器端会有---- The server is waiting for the clients to connect ----的显示。
(2). 客户端开启程序。 这样在客户端会有---- type quit or exit to disconnect to the server ----的显示。同时服务器端会有Connected to one client ... 的显示。
(3). 当客户端输入数据的时候,同时会显示输入信息的大写形式从服务器端返回。这是服务器端没有任何显示。
(4). 当客户端输入exit的时候,客户端会有Bye的显示,同时会显示Now is disconnected from server...。在服务器端也会有Disconnected to one client.的显示。
3. 关于net中的DatagramSocket 和 DatagramPacket对于UDP的支持。
以下面简短的例子来说明。主要是用到了socket 中的send 和 receive方法。
package com.java.net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner; public class _Client { static final int size = 256; public static void echo(){ DatagramSocket socket = null; try { socket = new DatagramSocket(); byte[] buf = new byte[size]; InetAddress address = InetAddress.getLocalHost(); send(socket, buf, buf.length, address, 4444); String initMsg = receive(socket, buf, buf.length);// System.out.println(initMsg); Scanner cin = new Scanner(System.in); while(cin.hasNextLine()){ String str = cin.nextLine(); if(!str.toLowerCase().equals("exit") && !str.toLowerCase().equals("quit")){ buf = new byte[size]; buf = str.getBytes(); send(socket, buf, buf.length, address, 4444); String received = receive(socket, buf, buf.length); System.out.println(received); }else{ break; } } } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } finally{ socket.close(); } } public static String receive(DatagramSocket socket, byte[] buf, int length){ String message = null; DatagramPacket packet = new DatagramPacket(buf, length); try { socket.receive(packet); message = new String(packet.getData(),0,packet.getLength()); } catch (IOException e) { e.printStackTrace(); } return message; } public static void send(DatagramSocket socket, byte[] buf, int length, InetAddress address, int port){ DatagramPacket packet = new DatagramPacket(buf, length, address, port);//用于发送数据包到指定主机的指定端口 try { socket.send(packet); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { echo(); } }
package com.java.net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class _Server { static final int size = 256; public static void waiting(){ System.out.println("---- The Server is running ----"); String initMsg = "Enter quit or exit to stop"; DatagramSocket socket = null; byte[] buf = new byte[size]; try { socket = new DatagramSocket(4444); DatagramPacket packet = new DatagramPacket(buf, buf.length);//用于接收数据包 socket.receive(packet); InetAddress address = packet.getAddress(); int port = packet.getPort(); buf = initMsg.getBytes();//将字符串信息转换成byte数组 send(socket, buf, buf.length, address, port);//发送初始提示信息给客户端 for(;;){ buf = new byte[size];//重新声明缓存 packet = new DatagramPacket(buf,buf.length); socket.receive(packet); String fromClient = new String(packet.getData(),0,packet.getLength()); System.out.println(fromClient); String toClient = fromClient.toUpperCase(); buf = toClient.getBytes(); send(socket, buf, buf.length, address, port); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(socket != null){ socket.close(); } } } public static void send(DatagramSocket socket, byte[] buf, int length, InetAddress address, int port){ DatagramPacket packet = new DatagramPacket(buf, length, address, port);//用于发送数据包到指定主机的指定端口 try { socket.send(packet); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { waiting(); } }
结果:
(客户端)
Enter quit or exit to stop
nihao
NIHAO
hello
HELLO
hanyuanbo
HANYUANBO
quit
(服务器端)
---- The Server is running ----
nihao
hello
hanyuanbo
运行过程:
(1) 运行server程序,程序会打印出---- The Server is running ----。
(2) 运行client程序,程序会打印出Enter quit or exit to stop。
(3) 每当用户敲入内容,在客户端会返回大写,而在服务器端会显示用户的输入内容。
(4) 当用户输入quit(或者exit)时,客户端退出。
4.
5.
6.
7.
8.
9.
10.
发表评论
-
Java.lang包
2010-09-30 11:33 1503在前面分开的说了下Java.lang.Thread和Java. ... -
java.io
2010-09-16 16:16 1229Java中比较丰富的I/O操作,使得Java能够被众多公司接受 ... -
Java.lang.Thread 和 Java.lang.ThreadGroup
2010-08-19 23:26 5678多线程 线程:是指进程中的一个执行流程。 线程与进程的区别 ... -
java.util.Scanner 和 Random
2010-08-19 21:58 11341.java util包下的Scanner类,为java的终端 ... -
java.util 语言敏感的类
2010-08-19 21:45 1824在util包下,有几个类是跟语言、时区等相关的类。正是java ... -
java.awt
2010-08-19 18:40 15921. Robot Robot 类可以帮我模拟鼠标事件。 ... -
java.util.regex
2010-08-19 18:35 1068Java的正则表达式是如此的强大,能够帮我们做很多东西,而这如 ...
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...
标题中的“java.net.SocketTimeoutException: Receive timed out”是一个Java编程中常见的异常,通常发生在进行网络通信时,接收数据超时。这个异常是由于Socket在等待接收数据时超过了预设的超时时间,没有接收到...
"java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...
### 在Win7系统下抛出java.net.SocketException的解决办法 #### 问题背景及原因分析 在使用MyEclipse开发工具结合JBoss服务器进行项目开发的过程中,遇到一个常见但令人头疼的问题:当启动JBoss服务器时,控制台...
Caused by: java.net.UnknownHostException: openapi.alipay.com
linux系统下部署TOMCAT异常错误java.net.UnknownHostException :bogon: bogon 主要原因是主机映射原因 修改hosts文件即可
https://javaserverfaces.dev.java.net/ mojarra-1.2._11_b0_FCS JDK 1.5 绝对能用 good luck
Java.NET包中的Socket通信是Java编程语言中用于网络通信的核心组件。它提供了基于TCP/IP协议的客户端和服务端之间数据传输的基础框架。在这个过程中,Socket扮演了连接两端的桥梁角色,使得应用程序可以进行双向、...
标题中的“J2EE项目代码全Java .NET”暗示了这是一个包含了使用Java和.NET技术开发的J2EE项目的集合。J2EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用程序的平台,它支持...
Java和.NET作为两种主流的开发平台,各自都有内置的加密库来处理数据的安全传输和存储。然而,由于实现细节的不同,直接使用Java和.NET的默认加密方法进行AES(高级加密标准)加密可能会导致在两个平台之间无法互...
java.net.RTP库 需要将该库加入rt.jar中 此rtp库是基于udp组播技术的 不支持单播 考虑清楚再下载 内部没有演示demo 附有源码 更多RTP信息看博客 https://blog.csdn.net/qq_41054313/article/details/88716995
NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014
"Selenium for java .net (2.48.0)"是这个框架的一个特定版本,适用于Java和.NET平台,并且支持服务(service)相关的功能。 首先,让我们深入了解Selenium的核心组件和功能: 1. **WebDriver**: WebDriver是...
《深入理解Java与.NET平台下的正则表达式调试器》 正则表达式,作为一种强大的文本处理工具,广泛应用于各种编程语言中,包括Java和.NET Framework。然而,编写复杂的正则表达式时,往往需要反复调试才能确保其正确...
这软件很好来下吧,。。。。。。。。。。。。。。。
标题中的“国际象棋 java .net”表明这是一个关于使用Java和.NET技术开发国际象棋游戏的项目。在Java和.NET平台上构建这样的应用涉及到多方面的知识,包括但不限于编程语言基础、图形用户界面设计、算法和数据结构、...
在Java中,Socket类位于`java.net`包下,而在.NET中,Socket类位于`System.Net.Sockets`命名空间内。 2. **TCP连接**:Java和.NET的Socket通信通常基于TCP(传输控制协议),这是一种面向连接的、可靠的传输协议,...
Java中的`java.net.SocketException: Connection reset`是一个常见的网络编程错误,通常表示在TCP/IP通信过程中,连接突然中断。这个异常可能在客户端或服务器端发生,通常与数据传输的异常中断有关。 首先,我们来...
【标题】:“面试题加答案java .net”涵盖了Java和.NET两大编程领域的面试知识点,是为求职者准备的重要参考资料。这两个技术栈在IT行业中占据着重要地位,广泛应用于企业级应用开发。 【Java面试知识点】: 1. **...