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
相关文档:
下面是常用处理日期的方法,希望对大家有用!
在我 ......
public class Path {
//get class absolute address
public String getPath() {
String classPath = getClass().getName();
if (classPath.indexOf(".") != -1) {
classPath = classPath.substring(classPath.lastIndexOf(".") + 1,
......
public static void main(String args[]) {
Comparator cmp = (RuleBasedCollator)java.text.Collator.getInstance(java.util.Locale.CHINA);
String[] array = {"张三", "李四", "王五"};
Arrays.sort(array, cmp);
for(String str : array){
System.out.println(str);
}
} ......