日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了一種非常基本的單向客戶端和服務器設置,其中客戶端連接,將消息發送到服務器,并且服務器使用Socket連接顯示消息。要使這些功能正常工作,需要進行很多底層操作,但是JAVA API網絡軟件包(java.NET)會處理所有這些工作,從而使程序員的網絡編程變得非常容易。

Java Socket實戰編程指南
 
 
 

客戶端編程

建立Socket連接

要連接到其他機器,我們需要一個Socket連接。Socket連接意味著兩臺機器具有有關彼此的網絡位置(IP地址)和TCP端口的信息。java.net.Socket類表示一個Socket。打開socket:

Socket socket = new Socket(“127.0.0.1”, 5000)

第一個參數– 服務器的IP地址。(127.0.0.1是本地主機的IP地址,其中代碼將在單個獨立計算機上運行)。

第二個參數– TCP端口。(只是一個數字,表示要在服務器上運行哪個應用程序。例如,HTTP在端口80上運行。端口號可以從0到65535)

Java Socket實戰編程指南
 
 
 

通訊

為了通過Socket連接進行通信,流被用于輸入和輸出數據。

斷開連接

發送到服務器的消息后,Socket連接將明確關閉。

在程序中,客戶端不斷讀取用戶的輸入并將其發送到服務器,直到鍵入“ Over”為止。

Java Socket實戰編程指南
 
 
 

Java實現

// A Java program for a Client

import java.net.*;

import java.io.*;

 

public class Client

{

// initialize socket and input output streams

private Socket socket = null;

private DataInputStream input = null;

private DataOutputStream out = null;

 

// constructor to put ip address and port

public Client(String address, int port)

{

// establish a connection

try

{

socket = new Socket(address, port);

System.out.println("Connected");

 

// takes input from terminal

input = new DataInputStream(System.in);

 

// sends output to the socket

out = new DataOutputStream(socket.getOutputStream());

}

catch(UnknownHostException u)

{

System.out.println(u);

}

catch(IOException i)

{

System.out.println(i);

}

 

// string to read message from input

String line = "";

 

// keep reading until "Over" is input

while (!line.equals("Over"))

{

try

{

line = input.readLine();

out.writeUTF(line);

}

catch(IOException i)

{

System.out.println(i);

}

}

 

// close the connection

try

{

input.close();

out.close();

socket.close();

}

catch(IOException i)

{

System.out.println(i);

}

}

 

public static void main(String args[])

{

Client client = new Client("127.0.0.1", 5000);

}

}

Java Socket實戰編程指南
 
 
 

服務器編程

建立Socket連接

要編寫服務器應用程序,需要兩個Socket。

等待客戶端請求的ServerSocket(客戶端創建新的Socket()時)

一個普通的舊SocketSocket,用于與客戶端進行通信。

Java Socket實戰編程指南
 
 
 

通訊

getOutputStream()方法用于通過Socket發送輸出。

關閉連接

完成后,重要的是通過關閉Socket以及輸入/輸出流來關閉連接。

// A Java program for a Server

import java.net.*;

import java.io.*;

 

public class Server

{

//initialize socket and input stream

private Socket socket = null;

private ServerSocket server = null;

private DataInputStream in = null;

 

// constructor with port

public Server(int port)

{

// starts server and waits for a connection

try

{

server = new ServerSocket(port);

System.out.println("Server started");

 

System.out.println("Waiting for a client ...");

 

socket = server.accept();

System.out.println("Client accepted");

 

// takes input from the client socket

in = new DataInputStream(

new BufferedInputStream(socket.getInputStream()));

 

String line = "";

 

// reads message from client until "Over" is sent

while (!line.equals("Over"))

{

try

{

line = in.readUTF();

System.out.println(line);

 

}

catch(IOException i)

{

System.out.println(i);

}

}

System.out.println("Closing connection");

 

// close connection

socket.close();

in.close();

}

catch(IOException i)

{

System.out.println(i);

}

}

 

public static void main(String args[])

{

Server server = new Server(5000);

}

}

重要事項

服務器應用程序在特定的端口5000上創建一個ServerSocket。這將啟動我們的服務器,以偵聽端口5000傳入的客戶端請求。

然后,服務器創建一個新的Socket以與客戶端進行通信。

socket = server.accept()

accept()方法會阻塞(只是坐在那里),直到客戶端連接到服務器為止。

然后,我們使用getInputStream()方法從Socket獲取輸入。我們的服務器一直在接收消息,直到客戶端發送“結束”為止。

完成后,我們通過關閉Socket和輸入流來關閉連接。

要在計算機上運行客戶端和服務器應用程序,請同時編譯它們。然后,首先運行服務器應用程序,然后運行客戶端應用程序。

在終端或命令提示符上運行

打開兩個窗口,一個用在服務器,另一個用在客戶端

1.首先以方式運行Server應用程序

$ java Server

服務器開始

等待客戶端…

2.然后,在另一個終端上運行客戶端應用程序,如下所示:

$ java Client

它將顯示–已連接,并且服務器接受客戶端并顯示

3.然后,您可以開始在“客戶端”窗口中鍵入消息。這是給客戶的樣本輸入

Hello

I made my first socket connection

Over

服務器同時接收并顯示的內容,

Hello

I made my first socket connection

Over

Closing connection

請注意,發送“ Over”將關閉客戶端和服務器之間的連接,就像之前所說的那樣。

如果您使用的是Eclipse或類似的工具,

在兩個不同的終端或選項卡上編譯它們兩者

首先運行服務器程序

然后運行客戶端程序

在客戶端窗口中鍵入消息,服務器窗口會同時接收并顯示這些消息。

鍵入結束。

分享到:
標簽:Java Socket
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定