亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

socket 的使用

系統 1893 0



???? socket通信分為tcp和udp兩種。

?

? 1、 Socket通信模型如下:

?? socket 的使用

? 2、

?UDP協議:

?????? 把數據打包成數據包,然后直接發送對應的ip地址,速度快,但是不保證成功率,并且數據大小有限
TCP協議:

?????? 首先連接接收方,然后發送數據,保證成功率, 速度慢

3、 TCP通信方式如下:

?

??
socket 的使用
?

而UDP通信不使用InputStream和OutputStream

?

4、 UDP通信實現:
UDP使用DatagramSocket對象來實現,UDP的客戶端代碼實現如下:

?

    public static void main(String[] args) {
		try {
			// 首先創建一個DatagramSocket對象
			DatagramSocket socket = new DatagramSocket(4567);
			// 創建一個InetAddree
			InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
			String str = "hello"; // 這是要傳輸的數據
			byte data[] = str.getBytes(); // 把傳輸內容分解成字節
			// 創建一個DatagramPacket對象,并指定要講這個數據包發送到網絡當中的哪個、地址,以及端口號
			DatagramPacket packet = new DatagramPacket(data, data.length,
					serverAddress, 4567);
			// 調用socket對象的send方法,發送數據
			socket.send(packet);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
  

? UDP的服務端代碼實現如下:

    // 創建一個DatagramSocket對象,并指定監聽的端口號
		DatagramSocket socket = new DatagramSocket(4567);
		byte data[] = new byte[1024];
		// 創建一個空的DatagramPacket對象
		DatagramPacket packet = new DatagramPacket(data, data.length);
		// 使用receive方法接收客戶端所發送的數據,
		// 如果客戶端沒有發送數據,該進程就停滯在這里
		socket.receive(packet);
		String result = new String(packet.getData(), packet.getOffset(),
				packet.getLength());
		System.out.println("result--->" + result);
  

?

5、? TCP通信的實現:
TCP使用Socket對象
TCP協議客戶端實現:

    // 創建一個Socket對象,指定服務器端的IP地址和端口號
		Socket socket = new Socket("192.168.1.104", 4567);
		// 使用InputStream讀取硬盤上的文件
		InputStream inputStream = new FileInputStream("f://file/words.txt");
		// 從Socket當中得到OutputStream
		OutputStream outputStream = socket.getOutputStream();
		byte buffer[] = new byte[4 * 1024];
		int temp = 0;
		// 將InputStream當中的數據取出,并寫入到OutputStream當中
		while ((temp = inputStream.read(buffer)) != -1) {
			outputStream.write(buffer, 0, temp);
		}
		outputStream.flush();
  

?

TCP協議服務器端現實:

     //聲明一個ServerSocket對象
        ServerSocket serverSocket = null;
        try {
                //創建一個ServerSocket對象,并讓這個Socket在4567端口監聽
              serverSocket = new ServerSocket(4567);
              //調用ServerSocket的accept()方法,接受客戶端所發送的請求,
              //如果客戶端沒有發送數據,那么該線程就停滯不繼續
              Socket socket = serverSocket.accept();
              //從Socket當中得到InputStream對象
              InputStream inputStream = socket.getInputStream();
              byte buffer [] = new byte[1024*4];
              int temp = 0;
              //從InputStream當中讀取客戶端所發送的數據
              while((temp = inputStream.read(buffer)) != -1){
                  System.out.println(new String(buffer,0,temp));
              }
           } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
           }
            serverSocket.close();
           } 
  

?

摘自他人博客,未經驗證,但是覺得很好。

socket 的使用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一级特黄特交牲大片 | 亚洲精品第一区二区在线 | 中文字幕日韩一区 | 奇米9999| 成人免费观看www视频 | 国产精品久久现线拍久青草 | 精品一区二区三 | 一级毛片免费视频观看 | 精品72久久久久久久中文字幕 | 久久免| 亚洲欧美日韩一区超高清 | 99热久| 欧美久久久久久久一区二区三区 | 亚洲国产成人精品激情 | 亚洲精品9999久久久久 | 福利在线观看视频 | 女人用粗大自熨喷水在线视频 | 亚洲偷图色综合色就色 | 精品热久国产福利视频 | 亚欧成人一区二区 | 国产精品国产亚洲精品看不卡 | 久久精品日日躁夜夜躁欧美 | 久9久9精品视频在线观看 | 欧美乱妇高清视频免欢看关 | 国产精品麻豆视频 | 性一级视频 | 成年女人视频在线观看免费 | 91精品国产免费久久 | 免费一看一级毛片 | 99爱视频免费高清在线观看 | 国产特级片 | 中文字幕视频在线 | 一区二区精品在线观看 | 久草香蕉视频在线观看 | 成年人免费在线视频 | 第一福利在线视频 | 99视频有精品视频免费观看 | 久久精品视频在线 | 纯欧美一级毛片免费 | 久久久久久青草大香综合精品 | 91免费国产在线观看尤物 |