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

socket 的使用

系統(tǒng) 1690 0



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

?

? 1、 Socket通信模型如下:

?? socket 的使用

? 2、

?UDP協(xié)議:

?????? 把數(shù)據(jù)打包成數(shù)據(jù)包,然后直接發(fā)送對(duì)應(yīng)的ip地址,速度快,但是不保證成功率,并且數(shù)據(jù)大小有限
TCP協(xié)議:

?????? 首先連接接收方,然后發(fā)送數(shù)據(jù),保證成功率, 速度慢

3、 TCP通信方式如下:

?

??
socket 的使用
?

而UDP通信不使用InputStream和OutputStream

?

4、 UDP通信實(shí)現(xiàn):
UDP使用DatagramSocket對(duì)象來(lái)實(shí)現(xiàn),UDP的客戶(hù)端代碼實(shí)現(xiàn)如下:

?

    public static void main(String[] args) {
		try {
			// 首先創(chuàng)建一個(gè)DatagramSocket對(duì)象
			DatagramSocket socket = new DatagramSocket(4567);
			// 創(chuàng)建一個(gè)InetAddree
			InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
			String str = "hello"; // 這是要傳輸?shù)臄?shù)據(jù)
			byte data[] = str.getBytes(); // 把傳輸內(nèi)容分解成字節(jié)
			// 創(chuàng)建一個(gè)DatagramPacket對(duì)象,并指定要講這個(gè)數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)當(dāng)中的哪個(gè)、地址,以及端口號(hào)
			DatagramPacket packet = new DatagramPacket(data, data.length,
					serverAddress, 4567);
			// 調(diào)用socket對(duì)象的send方法,發(fā)送數(shù)據(jù)
			socket.send(packet);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
  

? UDP的服務(wù)端代碼實(shí)現(xiàn)如下:

    // 創(chuàng)建一個(gè)DatagramSocket對(duì)象,并指定監(jiān)聽(tīng)的端口號(hào)
		DatagramSocket socket = new DatagramSocket(4567);
		byte data[] = new byte[1024];
		// 創(chuàng)建一個(gè)空的DatagramPacket對(duì)象
		DatagramPacket packet = new DatagramPacket(data, data.length);
		// 使用receive方法接收客戶(hù)端所發(fā)送的數(shù)據(jù),
		// 如果客戶(hù)端沒(méi)有發(fā)送數(shù)據(jù),該進(jìn)程就停滯在這里
		socket.receive(packet);
		String result = new String(packet.getData(), packet.getOffset(),
				packet.getLength());
		System.out.println("result--->" + result);
  

?

5、? TCP通信的實(shí)現(xiàn):
TCP使用Socket對(duì)象
TCP協(xié)議客戶(hù)端實(shí)現(xiàn):

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

?

TCP協(xié)議服務(wù)器端現(xiàn)實(shí):

     //聲明一個(gè)ServerSocket對(duì)象
        ServerSocket serverSocket = null;
        try {
                //創(chuàng)建一個(gè)ServerSocket對(duì)象,并讓這個(gè)Socket在4567端口監(jiān)聽(tīng)
              serverSocket = new ServerSocket(4567);
              //調(diào)用ServerSocket的accept()方法,接受客戶(hù)端所發(fā)送的請(qǐng)求,
              //如果客戶(hù)端沒(méi)有發(fā)送數(shù)據(jù),那么該線程就停滯不繼續(xù)
              Socket socket = serverSocket.accept();
              //從Socket當(dāng)中得到InputStream對(duì)象
              InputStream inputStream = socket.getInputStream();
              byte buffer [] = new byte[1024*4];
              int temp = 0;
              //從InputStream當(dāng)中讀取客戶(hù)端所發(fā)送的數(shù)據(jù)
              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();
           } 
  

?

摘自他人博客,未經(jīng)驗(yàn)證,但是覺(jué)得很好。

socket 的使用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 尹人久久久香蕉精品 | 亚洲和欧美毛片久久久久 | 亚洲日本一区二区三区 | 日韩视频网 | 天天艹天天操 | 色婷婷资源网 | 香蕉视频免费在线观看 | 久久视热这只是精品222 | 奇米第八色| 一区二区三区欧美日韩国产 | 国产99久久精品一区二区 | 久久另类 | 久久国产精品范冰啊 | 久久免费看 | 久久精品免视看国产明星 | 亚洲图色视频 | 台湾亚洲精品一区二区tv | 老司机精品视频个人在观看 | 久久综合狠狠综合久久综合88 | 成人一级网站 | 性一交一乱一视频免费看 | 99久久国产综合精品2020 | 国产欧美精品一区二区三区-老狼 | 久久国产精品自由自在 | 久久91精品国产一区二区 | 天天拍夜夜拍 | 午夜国产精品久久影院 | 亚洲视频国产 | 久久99精品久久久久久久不卡 | 日韩视频一区二区在线观看 | 日本不卡一二三区 | 97影院理论片 | 不卡一区二区在线 | 亚洲第一综合网站 | 女人18一级特级毛片免费看 | 悠久久| 国产一二三区精品 | 天天舔 | 国产亚洲欧洲 | xxx国产老太婆视频 xxx毛片 | 久九九久福利精品视频视频 |