CoreJava第11章:ネットワークプログラミング
5363 ワード
原文:http://blog.csdn.net/qjyong/archive/2009/09/15/4556527.aspx
author:qjyong
1.ポート番号:コンピュータを識別するあるネットワークプログラムで、TCPとUDPは同じポートを使用できます。
2.
転送プロトコル:
TCP:転送制御プロトコル:接続に向けて、データ転送が信頼でき、秩序化されている(データが完全で、効率が低い)。
(ServerSocketとソケット類)
UDP:ユーザーデータ報プロトコル:非接続に向けて、信頼できない、無秩序(完全性を保証しない、効率が高い、
一回で最大64 kb)
Datagram Socket、Datagram Packet、MullicastSocket。
アプリケーションプロトコル:HTTP,FTP,TELNET,SMTP。
3.InetAddress(IPまたはドメイン名の抽象)
InetAddres.getByName(「IP」);インスタンスを取得します
4.ソケットソケット
1)フロー式ソケット(TCP):IOストリームが伝送され、双方向
2)データグラム式ソケット(UDP):データグラム転送。
5.TCPプログラミング
a)ServerSocket:モニターポート、クライアント接続を受信する
ServerSocket(int port)
accept()//傍受し、クライアントソケットに戻ります(接続を受ける前にブロックされています)
close()
b)ソケットクライアントソケット
get InputStream() InputStreamをオフにします。OutputStreamはソケットを閉じます。
closeはInputStreamをクローズします。OutputStream
6.upプログラミング
送信するデータの長さは、バイト配列・レングスで取得します。受信データのバッファは、UDP送信可能バイトの最大数として指定されるべきである(65536)。64 K
7.受け入れ者
ブロードキャスト(broadcast):ローカルネットワークのすべてのコンピュータに送信
マルチキャスト(Multicast):興味のあるコンピュータに送信します。指定のマルチキャストグループに参加します。
224.0.0.0-39.255.255.255
8.URL getConnationからurlのリモートオブジェクトに接続する
8.URLEncoderとURLDecoder類
HTML形式の符号化ツール類
‘a-zA-Z 0-9.***-’に対して以外の文字はエンコードします。(スペースは+に変換されます。)
author:qjyong
1.ポート番号:コンピュータを識別するあるネットワークプログラムで、TCPとUDPは同じポートを使用できます。
2.
転送プロトコル:
TCP:転送制御プロトコル:接続に向けて、データ転送が信頼でき、秩序化されている(データが完全で、効率が低い)。
(ServerSocketとソケット類)
UDP:ユーザーデータ報プロトコル:非接続に向けて、信頼できない、無秩序(完全性を保証しない、効率が高い、
一回で最大64 kb)
Datagram Socket、Datagram Packet、MullicastSocket。
アプリケーションプロトコル:HTTP,FTP,TELNET,SMTP。
3.InetAddress(IPまたはドメイン名の抽象)
InetAddres.getByName(「IP」);インスタンスを取得します
4.ソケットソケット
1)フロー式ソケット(TCP):IOストリームが伝送され、双方向
2)データグラム式ソケット(UDP):データグラム転送。
5.TCPプログラミング
a)ServerSocket:モニターポート、クライアント接続を受信する
ServerSocket(int port)
accept()//傍受し、クライアントソケットに戻ります(接続を受ける前にブロックされています)
close()
b)ソケットクライアントソケット
get InputStream() InputStreamをオフにします。OutputStreamはソケットを閉じます。
closeはInputStreamをクローズします。OutputStream
6.upプログラミング
送信するデータの長さは、バイト配列・レングスで取得します。受信データのバッファは、UDP送信可能バイトの最大数として指定されるべきである(65536)。64 K
7.受け入れ者
ブロードキャスト(broadcast):ローカルネットワークのすべてのコンピュータに送信
マルチキャスト(Multicast):興味のあるコンピュータに送信します。指定のマルチキャストグループに参加します。
224.0.0.0-39.255.255.255
8.URL getConnationからurlのリモートオブジェクトに接続する
8.URLEncoderとURLDecoder類
HTML形式の符号化ツール類
‘a-zA-Z 0-9.***-’に対して以外の文字はエンコードします。(スペースは+に変換されます。)
//client
public class TCPClient {
/**
* @param args
* @author likf
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
try {
System.out.println("start client...");
Socket socket = new Socket("127.0.0.1", 4700);
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
PrintWriter os = new PrintWriter(socket.getOutputStream());
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
int i = 0;
do {
if (i > 0) {
System.out.println();
String getLine=is.readLine();
System.out.println(i + "=========================");
System.out.println("Server:" + getLine);
System.out.println("=========================");
System.out.print("reading:");
}
readline = sin.readLine();//read
os.println(readline);
os.flush();
i++;
} while (!readline.equals("bye!"));
os.close();
is.close();
socket.close();
} catch (Exception e) {
System.out.println("Error" + e);
}
}
public static void client() throws UnknownHostException, IOException {
Socket client = new Socket("127.0.0.1", 6789);
PrintWriter out = new PrintWriter(new OutputStreamWriter(client.getOutputStream()), true);
out.println(" ");
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
in.readLine(); // 。 。
client.close();
}
}
//server
public class TCP {
public static void main(String[] args) throws IOException {
try {
int i=Integer.parseInt("1");// int
int ii=Integer.valueOf("11");// int
System.out.println("start server..");
ServerSocket server = null;
try {
server = new ServerSocket(4700);
} catch (Exception e) {
System.out.println("can not listen to:" + e);
}
Socket socket = null;
try {
socket = server.accept();
// accept() ,
// Socket ,
} catch (Exception e) {
System.out.println("Error." + e);
}
String line;
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
do{
String getLine=is.readLine();
print(getLine);
line=sin.readLine();
os.println(line);
os.flush();
} while (!line.equals("bye"));
os.close();
is.close();
socket.close();
server.close();
} catch (Exception e) {
System.out.println("Error:" + e);
}
}
public static void print(String s){
System.out.println();
System.out.println("=========================");
System.out.println("Client:" +s );
System.out.println("=========================");
System.out.print("reading:");
}
public static void server() throws IOException {
ServerSocket server = new ServerSocket(6789);
Socket client = server.accept(); // , ,
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
in.readLine(); // 。 。
PrintWriter out = new PrintWriter(new OutputStreamWriter(client.getOutputStream()), true);
out.println(" ");
client.close();
server.close();
}
}