国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java socket編程實例代碼講解

2019-11-26 15:52:33
字體:
來源:轉載
供稿:網友

1、所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。

操作java socket時用到的最多的三個方法為:

accept():主要用于服務器端產生“阻塞”,等待客戶端的鏈接請求,并且返回一個客戶端的Socket實例;

getInputStream():方法主要用來獲得網絡連接輸入,同時返回一個InputStream對象實例;

getOutputStream():方法和上面的getInputStream相反。

2、一般要建立Java的Socket連接,應首先明確服務器端和客戶端,服務器端使用ServerSocket監聽指定的端口,使用accept等待客戶端請求,鏈接鏈接,開始會話、完成會話后,關閉鏈接。(注意,一般socket的關閉都應該是服務器端來進行的,后面說);客戶端使用Socket對網絡中的某個服務器的某個端口發出鏈接請求,連接成功,開始會話,會話完成,Socket關閉。

2、示例代碼:

服務器端:

復制代碼 代碼如下:

package com.icer.server;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Server
 *
 * @author Icer
 *
 */
public class Server {

    private ServerSocket ss;
    private Socket s;
    private BufferedReader br;
    private PrintWriter pw;

    public Server() {
        try {
                ss = new ServerSocket(10000);
                System.out.println("Server is starting...");
                s = ss.accept();
                br = new BufferedReader(new InputStreamReader(s.getInputStream()));
                pw = new PrintWriter(s.getOutputStream(),true);
                String line = br.readLine();
                System.out.println(line);
                pw.println("your word is:" + line);
                //pw.println("helloworld");
                br.close();
                pw.close();

        } catch (IOException ie) {
            ie.printStackTrace();
        }

    }

    public static void main(String[] args) throws Exception {
        new Server();
    }
}

客戶端:

復制代碼 代碼如下:

package com.icer.client;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * Client
 * @author Icer
 *
 */
public class Client {

    private Socket s;
    private BufferedReader br;
    //private BufferedReader line;
    private PrintWriter pw;
    private String line = "";
    public Client() {
        try{
            s = new Socket("127.0.0.1",10000);
            pw = new PrintWriter(s.getOutputStream(),true);
            br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            pw.println("hello");
            line = br.readLine();
            System.out.println(line);

            br.close();
            pw.close();
        }catch(IOException ie){
            ie.printStackTrace();
        }
    }
    public static void main(String[] args) throws Exception {
        new Client();
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台湾省| 山阴县| 施甸县| 社会| 额济纳旗| 获嘉县| 察雅县| 寿光市| 江门市| 宁波市| 龙岩市| 珲春市| 将乐县| 临邑县| 江阴市| 都安| 磐安县| 普兰店市| 馆陶县| 团风县| 宣武区| 洛宁县| 若尔盖县| 石台县| 彭山县| 固安县| 阳原县| 昌江| 宜宾县| 高淳县| 耿马| 夹江县| 五河县| 乐都县| 双流县| 镇宁| 神池县| 九龙城区| 大渡口区| 旅游| 洮南市|