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
相关文档:
自定义的Key类需要重载equals, hashCode函数。。
package com.albert.test;
import java.util.Vector;
import java.util.HashMap;
/**
* @author tough_guy
*
*/
//对于自定义的key, 需要重载hashCode函数和equals函数
class IPSegment
{
long ip_s;
long ip_e;
int p;
IPSegment Reset(long f ......
下面是常用处理日期的方法,希望对大家有用!
在我 ......
XML文件 book.xml
<book>
<person>
<first>Kiran</first>
<last>Pai</last>
<age>22</age>
</person>
<person>
<first>Bill</first>
<last>Gates</last>
<age>46</age>
</person>
<person>
&l ......
1 相关知识介绍
1.1 SMB
Microsoft网络配置中主要采用SMB形式实现文件共享和打印服务,SMB(服务器消息块)是一种客户端/服务器文件共享协议。IBM于20世纪80年代末期开发了服务器信息块(SMB),用于规范共享网络资源(如目录、文件、打印机以及串行端口)的结构。这是一种请求/响应协议。与FT ......
怪异之一:
connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常。如果连接成功了,就继续执行下一步的代码。
怪异之二:
boolean isConnected() :这个方法的结果仅仅代表这个socket曾经成功连接到了server,但并不表示现在这个时刻它和server仍保持连接状态。
有 ......