亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

SUN認(rèn)證

Server Socket通信的實(shí)例分析

時(shí)間:2024-09-24 18:59:18 SUN認(rèn)證 我要投稿
  • 相關(guān)推薦

Server Socket通信的實(shí)例分析

  Server Socket 通信一直在不斷的進(jìn)行相關(guān)的測(cè)試,在不斷的使用中有很多的問(wèn)題存在,其實(shí)有不少的問(wèn)題在源代碼中就能找打答案。所謂Server Socket通信通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。

  Socket和ServerSocket類庫(kù)位于java.net包中。Server Socket用于服務(wù)器端,Server Socket通信是建立網(wǎng)絡(luò)連接時(shí)使用的。在 連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來(lái)說(shuō),套接字是平等的,并沒(méi)有差別,不因?yàn)樵诜?務(wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過(guò)SocketImpl類及其子類完成的。

  下面給出一個(gè)最簡(jiǎn)單的Server Socket通信的例子供初學(xué)者參考:

  服務(wù)器端: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ā)送與接收是需要同步進(jìn)行的,即客戶端發(fā)送一條信息,服務(wù)器必需先接收這條信息,

  10.* 而后才可以向客戶端發(fā)送信息,否則將會(huì)有運(yùn)行時(shí)出錯(cuò)。

  11.* @param args

  12.*/

  13.public static void main(String[] args) {

  14.ServerSocket ss = null;

  15.try {

  16.ss = new ServerSocket(8888);

  17.//服務(wù)器接收到客戶端的數(shù)據(jù)后,創(chuàng)建與此客戶端對(duì)話的Socket

  18.Socket socket = ss.accept();

  19.//用于向客戶端發(fā)送數(shù)據(jù)的輸出流

  20.DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

  21.//用于接收客戶端發(fā)來(lái)的數(shù)據(jù)的輸入流

  22.DataInputStream dis = new DataInputStream(socket.getInputStream());

  23.System.out.println("服務(wù)器接收到客戶端的連接請(qǐng)求:" + dis.readUTF());

  24.//服務(wù)器向客戶端發(fā)送連接成功確認(rèn)信息

  25.dos.writeUTF("接受連接請(qǐng)求,連接成功!");

  26.//不需要繼續(xù)使用此連接時(shí),關(guān)閉連接

  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.//獲取輸出流,用于客戶端向服務(wù)器端發(fā)送數(shù)據(jù)

  50.DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

  51.//獲取輸入流,用于接收服務(wù)器端發(fā)送來(lái)的數(shù)據(jù)

  52.DataInputStream dis = new DataInputStream(socket.getInputStream());

  53.//客戶端向服務(wù)器端發(fā)送數(shù)據(jù)

  54.dos.writeUTF("我是客戶端,請(qǐng)求連接!");

  55.//打印出從服務(wù)器端接收到的數(shù)據(jù)

  56.System.out.println(dis.readUTF());

  57.//不需要繼續(xù)使用此連接時(shí),記得關(guān)閉哦

  58.socket.close();

  59.} catch (UnknownHostException e) {

  60.e.printStackTrace();

  61.} catch (IOException e) {

  62.e.printStackTrace();

【Server Socket通信的實(shí)例分析】相關(guān)文章:

PHP中如何使用socket進(jìn)行通信10-27

JavaScript匿名函數(shù)實(shí)例分析08-15

PHP socket的配置09-28

JQuery中serialize()用法實(shí)例分析09-28

PHP Socket編程過(guò)程02-09

固定資產(chǎn)清理分錄實(shí)例分析08-18

托?谡Z(yǔ)的評(píng)分標(biāo)準(zhǔn)及實(shí)例分析08-11

JQuery中Text方法用法實(shí)例分析07-23

javascript閉包的定義及應(yīng)用實(shí)例分析04-21

jQuery解析json數(shù)據(jù)實(shí)例分析問(wèn)題07-08