免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【android】Socket簡(jiǎn)單用法

    Socket通常也稱做”套接字“,用于描述IP地址和端口,廢話不多說,它就是網(wǎng)絡(luò)通信過程中端點(diǎn)的抽象表示。值得一提的是,Java在包java.net中提供了兩個(gè)類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務(wù)端。這是兩個(gè)封裝得非常好的類,使用起來很方便!

    下面將首先創(chuàng)建一個(gè)SocketServer的類作為服務(wù)端如下,該服務(wù)端實(shí)現(xiàn)了多線程機(jī)制,可以在特定端口處監(jiān)聽多個(gè)客戶請(qǐng)求,一旦有客戶請(qǐng)求,Server總是會(huì)創(chuàng)建一個(gè)服務(wù)純種來服務(wù)新來的客戶,而自己繼續(xù)監(jiān)聽。程序中accept()是一個(gè)阻塞函數(shù),所謂阻塞性方法就是說該方法被調(diào)用后將等待客戶的請(qǐng)求,直到有一個(gè)客戶啟動(dòng)并請(qǐng)求連接到相同的端口,然后accept()返回一個(gè)對(duì)應(yīng)于客戶的Socket。這時(shí),客戶方和服務(wù)方都建立了用于通信的Socket,接下來就是由各個(gè)Socket分別打開各自的輸入、輸出流。

  • SocketServer類,服務(wù)器實(shí)現(xiàn):
1 package HA.Socket;
2
3 import java.io.*;
4 import java.net.*;
5
6  public class SocketServer {
7
8 ServerSocket sever;
9
10 public SocketServer(int port){
11 try{
12 sever = new ServerSocket(port);
13 }catch(IOException e){
14 e.printStackTrace();
15 }
16 }
17
18 public void beginListen(){
19 while(true){
20 try{
21 final Socket socket = sever.accept();
22
23 new Thread(new Runnable(){
24 public void run(){
25 BufferedReader in;
26 try{
27 in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
28 PrintWriter out = new PrintWriter(socket.getOutputStream());
29 while (!socket.isClosed()){
30 String str;
31 str = in.readLine();
32 out.println("Hello!world!! " + str);
33 out.flush();
34 if (str == null || str.equals("end"))
35 break;
36 System.out.println(str);
37 }
38 socket.close();
39 }catch(IOException e){
40 e.printStackTrace();
41 }
42 }
43 }).start();
44 }catch(IOException e){
45 e.printStackTrace();
46 }
47 }
48 }
49 }
  • SocketClient類,客戶端實(shí)現(xiàn):
1 package HA.Socket;
2
3 import java.io.*;
4 import java.net.*;
5
6  public class SocketClient {
7 static Socket client;
8
9 public SocketClient(String site, int port){
10 try{
11 client = new Socket(site,port);
12 System.out.println("Client is created! site:"+site+" port:"+port);
13 }catch (UnknownHostException e){
14 e.printStackTrace();
15 }catch (IOException e){
16 e.printStackTrace();
17 }
18 }
19
20 public String sendMsg(String msg){
21 try{
22 BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
23 PrintWriter out = new PrintWriter(client.getOutputStream());
24 out.println(msg);
25 out.flush();
26 return in.readLine();
27 }catch(IOException e){
28 e.printStackTrace();
29 }
30 return "";
31 }
32 public void closeSocket(){
33 try{
34 client.close();
35 }catch(IOException e){
36 e.printStackTrace();
37 }
38 }
39 public static void main(String[] args) throws Exception{
40
41 }
42
43 }

    接下來就是來測(cè)試Socket通信了!

   先運(yùn)行TestSocketServer類,打開服務(wù)端,在12345端口處監(jiān)聽!

1 package HA.Socket;
2
3  public class TestSocketServer {
4
5 public static void main(String[] argvs){
6 SocketServer server = new SocketServer(12345);
7 server.beginListen();
8 }
9 }

   再運(yùn)行TestSocketClient類:

1 package HA.Socket;
2
3  public class TestSocketClient {
4
5 public static void main(String[] args){
6
7 SocketClient client = new SocketClient("127.0.0.1",12345);
8 System.out.println(client.sendMsg("nimei1"));
9 client.closeSocket();
10
11 SocketClient client1 = new SocketClient("127.0.0.1",12345);
12 System.out.println(client1.sendMsg("nimei1111"));
13 client1.closeSocket();
14
15 SocketClient client11 = new SocketClient("127.0.0.1",12345);
16 System.out.println(client11.sendMsg("nimei11111111"));
17 client11.closeSocket();
18
19 SocketClient client111 = new SocketClient("127.0.0.1",12345);
20 System.out.println(client111.sendMsg("nimei11111111111111111"));
21 client111.closeSocket();
22
23 }
24 }

 輸出結(jié)果如下:

服務(wù)端:

Client is created! site:127.0.0.1 port:12345
Hello
!world!! nimei1
Client
is created! site:127.0.0.1 port:12345
Hello
!world!! nimei1111
Client
is created! site:127.0.0.1 port:12345
Hello
!world!! nimei11111111
Client
is created! site:127.0.0.1 port:12345
Hello
!world!! nimei11111111111111111

客戶端:

nimei1
nimei1111
nimei11111111
nimei11111111111111111
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java socket 通信
初學(xué)者第73節(jié)網(wǎng)絡(luò)編程-ServerSocket(二)
網(wǎng)絡(luò)編程
使用 java Socket 從客戶端向服務(wù)器端傳文件 - cwyang的專欄 - CSD...
android record video(3gp) to remote server
新浪微博模擬登錄 java實(shí)現(xiàn)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服