Server Socket 通訊一直在不斷的進行相關的測試,在不斷的使用中有很多的問題存在,其實有不少的問題在原始碼中就能找打答案。所謂Server Socket通訊通常也稱作"套接字",用於描述IP地址和埠,是一個通訊鏈的控制代碼。應用程式通常通過"套接字"向網路發出請求或者應答網路請求。
Socket和ServerSocket類庫位於包中。Server Socket用於服務器端,Server Socket通訊是建立網路連線時使用的。在 連線成功時,應用程式兩端都會產生一個Socket例項,操作這個例項,完成所需的會話。對於一個網路連線來說,套接字是平等的,並沒有差別,不因為在服 務器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
下面給出一個最簡單的Server Socket通訊的例子供初學者參考:
伺服器端:
Java程式碼
age et;
rt InputStream;
rt OutputStream;
rt ception;
rt erSocket;
rt et;
ic class ServerDemo {
8./**
9.* 注意:Socket的.傳送與接收是需要同步進行的,即客戶端傳送一條資訊,伺服器必需先接收這條資訊,
10.* 而後才可以向客戶端傳送資訊,否則將會有執行時出錯。
11.* @param args
12.*/
ic static void main(String[] args) {
erSocket ss = null;
{
= new ServerSocket(8888);
17.//伺服器接收到客戶端的資料後,建立與此客戶端對話的Socket
et socket = pt();
19.//用於向客戶端傳送資料的輸出流
OutputStream dos = new DataOutputStream(utputStream());
21.//用於接收客戶端發來的資料的輸入流
InputStream dis = new DataInputStream(nputStream());
tln("伺服器接收到客戶端的連線請求:" + UTF());
24.//伺服器向客戶端傳送連線成功確認資訊
eUTF("接受連線請求,連線成功!");
26.//不需要繼續使用此連線時,關閉連線
e();
e();
29.} catch (IOException e) {
tStackTrace();
31.}
32.}
33.}
Server Socket通訊客戶端:
Java程式碼
age et;
rt InputStream;
rt OutputStream;
rt ception;
rt utStream;
rt et;
rt ownHostException;
ic class ClientDemo {
42./**
43.* @param args
44.*/
ic static void main(String[] args) {
et socket = null;
{
et = new Socket("localhost",8888);
49.//獲取輸出流,用於客戶端向伺服器端傳送資料
OutputStream dos = new DataOutputStream(utputStream());
51.//獲取輸入流,用於接收伺服器端傳送來的資料
InputStream dis = new DataInputStream(nputStream());
53.//客戶端向伺服器端傳送資料
eUTF("我是客戶端,請求連線!");
55.//打印出從伺服器端接收到的資料
tln(UTF());
57.//不需要繼續使用此連線時,記得關閉哦
e();
59.} catch (UnknownHostException e) {
tStackTrace();
61.} catch (IOException e) {
tStackTrace();