think in java第十五章关于网络编程的读书笔记
对于java的网络编程书中讨论的全部归纳起来有Socket的使用,DatagramSocket的使用,java与CGI的配合使用,java连接数据库以及java中调用远程方法。
首先是Socket的使用,对于服务端来说,应该声明的是ServerSocket对象,然后使用Socket
accept()方法进行对端口进行监听。如果有客户机创建一个Socket(服务器IP,
服务器端口)对象进行连接(创建一个Socket的时候就会自动进行连接)。accept方法就会返回一个Socket对象。此时服务器与客户机就能就能
通过Socket提供的getInputStream()和getOutputStream()返回的IO进行交互了。但是要注意的就是一旦
ServerSocket调用了accept()这个方法,那么这个线程就会用于监听端口,如果没有客户端连接进来这个线程就会一直停留在那个方法里。所
以Socket最好还是和多线程进行结合使用。比如写一个继承了Thread的类里面包含一个Socket对象。
之后是DatagramSocket的使用,这个和Socket的不同在于:DatagramSocket是UDP协议而Socket是TCP/IP协
议。UDP协议的可靠性比TCP/IP协议略差,但是UDP协议却有很高的传输速度,使用用于即时性很强的程序(魔兽争霸与暗黑都是建立UDP连接的)。
对于DatagramSocket的使用方法和Socket的有很大不同。具体来说DatagramSocket要很DatagramPacket类配合
使用,DatagramSocket不必像Socket那样建立一个一一对应的连接,DatagramSocket在交互上常用的两个方法是void
receive(DatagramPacket p)和void send(DatagramPacket
p)。对于DatagramSocket对像的创建方法有多种,其中new DatagramSocket(int
port)是将其绑定到本地主机上的指定端口,而new
DatagramSocket()则是将其绑定到本地主机上任何可用的端口。然后只需使用receive和send收发DatagramPacket对
象。DatagramPacket中包含了本地地址、端口、消息以及目的地的地址和端口。所以收到一个DatagramPacket包以后,只须调用方法
getAddress(),getPort()就能获得发送机器的信息,有了这些信息就能对发送者进行反馈。
具体可以参看书中给出的使用示例:
//: Dgram.java
// A utility class to convert back and forth
// Between Strings and DataGramPackets.
import java.net.*;
public class Dgram {
public static DatagramPacket toDatagram(String s, InetAddress destIA, int dest
相关文档:
现在很多人都问 C++和Java 哪个好. 其实技术上各有各的好处与不足,我想大家所说的好不好指得是前途好不好,赚的多不多.
要说赚钱最多的肯定是C++了.因为一门技术是否值钱全看会它的人有多少而不在于这个技术本身的好坏. C++涉及硬件底层的东西比较多,学起来很复杂,会的人少,所以值钱.
&nb ......
xml文件:
Xml代码
<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<NO>A1234</NO>
<ADDR>河南省郑州市</ADDR>
</VALUE>&nbs ......
归纳一些网上取JAVA路径的方法:
注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。
得到classpath和当前类的绝对路径的一些方法
获得CLASSPATH之外路径的方法:
URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/ ......
怪异之一:
connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常。如果连接成功了,就继续执行下一步的代码。
怪异之二:
boolean isConnected() :这个方法的结果仅仅代表这个socket曾经成功连接到了server,但并不表示现在这个时刻它和server仍保持连接状态。
有 ......