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();