- 相關推薦
Server Socket通信的實例分析
Server Socket 通信一直在不斷的進行相關的測試,在不斷的使用中有很多的問題存在,其實有不少的問題在源代碼中就能找打答案。所謂Server Socket通信通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求。
Socket和ServerSocket類庫位于java.net包中。Server Socket用于服務器端,Server Socket通信是建立網(wǎng)絡連接時使用的。在 連接成功時,應用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡連接來說,套接字是平等的,并沒有差別,不因為在服 務器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
下面給出一個最簡單的Server Socket通信的例子供初學者參考:
服務器端:ServerDemo.java
Java代碼
1.package com.lanber.socket;
2.import java.io.DataInputStream;
3.import java.io.DataOutputStream;
4.import java.io.IOException;
5.import java.net.ServerSocket;
6.import java.net.Socket;
7.public class ServerDemo {
8./**
9.* 注意:Socket的發(fā)送與接收是需要同步進行的,即客戶端發(fā)送一條信息,服務器必需先接收這條信息,
10.* 而后才可以向客戶端發(fā)送信息,否則將會有運行時出錯。
11.* @param args
12.*/
13.public static void main(String[] args) {
14.ServerSocket ss = null;
15.try {
16.ss = new ServerSocket(8888);
17.//服務器接收到客戶端的數(shù)據(jù)后,創(chuàng)建與此客戶端對話的Socket
18.Socket socket = ss.accept();
19.//用于向客戶端發(fā)送數(shù)據(jù)的輸出流
20.DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
21.//用于接收客戶端發(fā)來的數(shù)據(jù)的輸入流
22.DataInputStream dis = new DataInputStream(socket.getInputStream());
23.System.out.println("服務器接收到客戶端的連接請求:" + dis.readUTF());
24.//服務器向客戶端發(fā)送連接成功確認信息
25.dos.writeUTF("接受連接請求,連接成功!");
26.//不需要繼續(xù)使用此連接時,關閉連接
27.socket.close();
28.ss.close();
29.} catch (IOException e) {
30.e.printStackTrace();
31.}
32.}
33.}
Server Socket通信客戶端:ClientDemo.java
Java代碼
34.package com.lanber.socket;
35.import java.io.DataInputStream;
36.import java.io.DataOutputStream;
37.import java.io.IOException;
38.import java.io.OutputStream;
39.import java.net.Socket;
40.import java.net.UnknownHostException;
41.public class ClientDemo {
42./**
43.* @param args
44.*/
45.public static void main(String[] args) {
46.Socket socket = null;
47.try {
48.socket = new Socket("localhost",8888);
49.//獲取輸出流,用于客戶端向服務器端發(fā)送數(shù)據(jù)
50.DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
51.//獲取輸入流,用于接收服務器端發(fā)送來的數(shù)據(jù)
52.DataInputStream dis = new DataInputStream(socket.getInputStream());
53.//客戶端向服務器端發(fā)送數(shù)據(jù)
54.dos.writeUTF("我是客戶端,請求連接!");
55.//打印出從服務器端接收到的數(shù)據(jù)
56.System.out.println(dis.readUTF());
57.//不需要繼續(xù)使用此連接時,記得關閉哦
58.socket.close();
59.} catch (UnknownHostException e) {
60.e.printStackTrace();
61.} catch (IOException e) {
62.e.printStackTrace();
【Server Socket通信的實例分析】相關文章:
PHP中如何使用socket進行通信08-21
德國留學申請實例分析09-28
PHP對象注入的實例分析08-27
PHP socket的配置08-04
城市濕地景觀生態(tài)設計的實例分析10-26
托?谡Z的評分標準及實例分析08-14