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

成都創(chuàng)新互聯(lián)公司10多年企業(yè)網(wǎng)站制作服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站制作及推廣,對(duì)成都攪拌罐車等多個(gè)方面擁有多年的網(wǎng)站營(yíng)銷經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
Socket和ServerSocket類庫位于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ò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?務(wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
下面給出一個(gè)最簡(jiǎn)單的Server Socket通信的例子供初學(xué)者參考:
服務(wù)器端:ServerDemo.java
Java代碼
- package com.lanber.socket;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class ServerDemo {
- /**
- * 注意:Socket的發(fā)送與接收是需要同步進(jìn)行的,即客戶端發(fā)送一條信息,服務(wù)器必需先接收這條信息,
- * 而后才可以向客戶端發(fā)送信息,否則將會(huì)有運(yùn)行時(shí)出錯(cuò)。
- * @param args
- */
- public static void main(String[] args) {
- ServerSocket ss = null;
- try {
- ss = new ServerSocket(8888);
- //服務(wù)器接收到客戶端的數(shù)據(jù)后,創(chuàng)建與此客戶端對(duì)話的Socket
- Socket socket = ss.accept();
- //用于向客戶端發(fā)送數(shù)據(jù)的輸出流
- DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
- //用于接收客戶端發(fā)來的數(shù)據(jù)的輸入流
- DataInputStream dis = new DataInputStream(socket.getInputStream());
- System.out.println("服務(wù)器接收到客戶端的連接請(qǐng)求:" + dis.readUTF());
- //服務(wù)器向客戶端發(fā)送連接成功確認(rèn)信息
- dos.writeUTF("接受連接請(qǐng)求,連接成功!");
- //不需要繼續(xù)使用此連接時(shí),關(guān)閉連接
- socket.close();
- ss.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Server Socket通信客戶端:ClientDemo.java
Java代碼
- package com.lanber.socket;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.Socket;
- import java.net.UnknownHostException;
- public class ClientDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Socket socket = null;
- try {
- socket = new Socket("localhost",8888);
- //獲取輸出流,用于客戶端向服務(wù)器端發(fā)送數(shù)據(jù)
- DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
- //獲取輸入流,用于接收服務(wù)器端發(fā)送來的數(shù)據(jù)
- DataInputStream dis = new DataInputStream(socket.getInputStream());
- //客戶端向服務(wù)器端發(fā)送數(shù)據(jù)
- dos.writeUTF("我是客戶端,請(qǐng)求連接!");
- //打印出從服務(wù)器端接收到的數(shù)據(jù)
- System.out.println(dis.readUTF());
- //不需要繼續(xù)使用此連接時(shí),記得關(guān)閉哦
- socket.close();
- } catch (UnknownHostException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
以上就是對(duì)Server Socket通信的詳細(xì)代碼介紹,希望大家找到了自己需要的。
【編輯推薦】
- Java ServerSocket的服務(wù)端代碼介紹
- Java Socket線程的設(shè)計(jì)原理介紹
- Java Socket共享的設(shè)計(jì)原理深層透析
- Java socket套接字如何建立自身服務(wù)器
- Java Socket編程相關(guān)源代碼的介紹
網(wǎng)頁題目:Server Socket通信簡(jiǎn)單的實(shí)例分析
分享鏈接:http://www.5511xx.com/article/cdcejdi.html


咨詢
建站咨詢
