1. 程式人生 > >通過UDP傳送和接收資料包

通過UDP傳送和接收資料包

傳送端:

package net.udp;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;


/*
 * 建立UDP傳送端的思路:
 * 1.建立UDP的Socket服務;使用DatagramSocket
 * 2.建立資料包,將要傳送的資料封裝到資料包;使用DatagramPacket,確定目的地址
 * 3.通過UDP的Socket服務傳送資料包;send()
 * 4.關閉Socket服務
 */


public class UDPSend {
/**
* @param args
* @throws IOException 
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub


System.out.println("傳送端啟動....");


//1.建立UDP的Socket服務;使用DatagramSocket
DatagramSocket ds=new DatagramSocket(8888); //指定傳送端埠


//2.建立資料包;使用DatagramPacket,確定目的地址
byte [] buf=new String("Hello,小弟").getBytes();
DatagramPacket dp =
new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.166.193"),10000);
//指定接收端埠


//3.傳送資料包;send()
ds.send(dp);
 // 4.關閉Socket服務
ds.close();
}


}

接收端:

package net.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

/*
 * 建立UDP接收端的思路:
 * 1.建立UDP的Socket服務;使用DatagramSocket
 * 2.建立一個數據包,用於儲存接收到的資料。方便用資料包物件的方法解析這些資料。
 * 3.使用Socket服務的

receive()接收資料並存儲到資料包中
 * 4.通過資料包物件的方法,解析其中的資料,比如地址,埠,內容等
 * 5.關閉Socket服務
 */
public class UDPReceive {

/**
* @param args
* @throws IOException 
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("接收端啟動....");


//1.建立UDP的Socket服務;使用DatagramSocket
DatagramSocket ds=new DatagramSocket(10000);


//2.建立一個數據包,用於儲存接收到的資料
byte [] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);


//3.receive資料
ds.receive(dp);


//4.通過資料包物件的方法,解析其中的資料,比如地址,埠,內容等
String ip=dp.getAddress().getHostAddress();
int port=dp.getPort();
String text=new String (dp.getData(),0,dp.getLength());


//5.關閉Socket服務
System.out.println(ip+"::"+port+"::"+text);
ds.close();
}
}

相關推薦

通過UDP傳送接收資料

傳送端: package net.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.Da

網絡卡如何傳送接收資料

 IP報文可以看作一個包。     Linux網絡卡驅動程式,將IP包新增14位元組的MAC包頭,構成MAC包。     MAC包中含有傳送端和接收端的MAC地址資訊。既然是驅動程式建立的MAC包頭資訊,當然可以隨便輸入地址資訊的,主機偽裝就是這麼實現的。    

通過Intent傳送接收返回資料

一、在Activity中通過Intent傳送資料給下一個活動 //在當前活動配置帶有傳送資料的intent Intent intent = new Intent(context,nextActivity.class); intent.putExtra("Extra_dat

26 API-網路程式設計(網路概述,Socket通訊機制,UDP協議傳送接收資料,TCP協議傳送接收資料)

1:網路程式設計(理解) (1)網路程式設計:用Java語言實現計算機間資料的資訊傳遞和資源共享(2)網路程式設計模型 l網路模型一般是指 OSI(Open System Interconnection開放系統互連)參考模型 TCP/IP參考模型 (3)網路程式

UDP網路程式傳送接收資料

建立一個基於udp的網路程式流程很簡單,具體步驟如下: 1.建立客戶端套接字 2.傳送/接收資料 3.關閉套接字 UDP傳送和接收資料 在 Python 中 使用socket 模組的函式 socket 就可以完成: import socket #

【Java TCP/IP Socket程式設計】----傳送接收資料----構建解析協議訊息

--------筆記來自於書籍《Java TCP/IP Socket程式設計》。 簡介 使用套接字時,通常要麼是需要同時建立通訊通道兩端的程式,要麼實現一個給定的協議進行通訊。如果知道通訊雙方都使用java實現,且擁有對協議的完全控制權,那麼就可以使用Java的內建工具如Serialiabl

【Java TCP/IP Socket程式設計】----傳送接收資料----訊息成幀與解析

目錄   簡介 成幀與解析 成幀技術案例 簡介 在程式中使用套接字向其他程式提供資訊或者使用其他程式提供的資訊,這就需要任何需要交換資訊的程式間在資訊編碼方式上達成共識(包含了資訊交換的形式和意義),稱為協議,用來實現特定的應用程式的協議叫應用程式協議。大部分應

用C寫一個UDP傳送接收程式

1、UDP網路程式設計主要流程 UDP協議的程式設計框架,客戶端和伺服器之間的差別在於伺服器必須使用bind()函式來繫結偵聽的本地UDP埠,而客戶端則可以不進行繫結,直接傳送到伺服器地址的某個埠地址。框圖如圖1.3所示 UDP協議的伺服器端流程 伺服器流程主要分為下述6個部分,即建立套

android連線SSM傳送接收資料

//註冊賬戶 URL url=null; HttpURLConnection httpURLConnection=null; String result=null,re="";

linux多執行緒下開啟串列埠傳送接收資料

1 啟動執行緒1讀串列埠 2 等待3秒後 3 啟動執行緒2寫串列埠,傳送字串後關閉 4 等待10秒 5 關閉兩個執行緒 #include <pthread.h> #include <stdio.h> #include <sys/time.h> #include &

Java實現RS485串列埠通訊,傳送接收資料進行解析

  最近專案有一個空氣檢測儀,需要得到空氣檢測儀的實時資料,儲存到資料庫當中。根據瞭解得到,硬體是通過rs485進行串列埠通訊的,需要傳送16進制命令給儀器,然後通過輪詢來得到資料。   需要先要下載RXTX的jar包,win64位下載地址:http://pan.baidu.com/s/1o6zLmTc);

Java 小例子:通過 Socket 傳送接收檔案

這是一個簡單的包含傳送端和接收端的例子。傳送端向接收端傳送檔名和檔案內容,接收端將收到的檔案儲存在磁碟上。接收端可以同時接收多個傳送端傳來的檔案,但沒有處理檔案同名的情況。 這個例子中設計了一個簡單的協議。傳送的內容是這樣的: 檔名長度(4位元組)—檔名—檔案內容長度(4位

java socket連線以及傳送接收資料

/** * */ package socketTest2; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import

非同步SOCKET程式設計-傳送接收資料

我本想把傳送和接收分開作為兩部分,但是最後我決定只略微解釋一下 FD_READ ,留下更多的時間來說明更復雜的 FD_WRITE , FD_READ 事件非常容易掌握. 當有資料傳送過來時, WinSock 會以 FD_READ 事件通知你, 對於每一個 FD_READ 事件

非同步SOCKET程式設計-傳送接收資料[轉] 非同步SOCKET程式設計-傳送接收資料[轉]

Socket(套接字)◆先看定義: typedef unsigned int u_int; typedef u_int SOCKET; ◆Socket相當於進行網路通訊兩端的插座,只要對方的Socket和自己的Socket有通訊聯接,雙方就可以傳送和接收資料了。其定義類似於檔案控制代碼的定義。◆Socket有

WebSocket:建立例項、傳送接收資料

1、Web Sockets:能夠在客戶端和服務端之間傳送非常少量的資料,而不必擔心HTTP那樣位元組級的開銷 由於傳遞的資料包很小,因此WebSockets非常適合移動應用。 缺點:制定協議的時間比制定

Qt下通過packet庫實現ARP資料傳送接收

Qt中暫時據我瞭解暫時沒有對底層網絡卡操作的類和相關庫,這次通過ARP協議寫的區域網ip搜尋程式都是採用微軟的底層網絡卡操作相關庫,此次主要了libpacket.a和libwpcap.a庫。操作步驟如下: (2)      到http://www.winpcap.org/

UDP完成資料傳送接收的程式碼

要實現UDP通訊需要建立一個傳送端程式和一個接收端程式,很明顯,在通訊時只有接收端程式先執行,才能避免因傳送端傳送的資料無法接收,而造成資料丟失。因此,首先需要來完成接收端程式的編寫。 UDP完成資料的傳送 /* * 傳送端  * 1,建立DatagramSocket

通過python下的socket實現組播資料傳送接收

關於網路組播的解釋我不在此詳述了,想了解的直接百娘就可以了,本人也是新手,研究了幾天Python的組播程式設計後,目前終於成功的解決了自己找的各種麻煩,所以現在總結如下: python實現socket組播有N種寫法,我現在只給出自己認為比較妥當的寫法。 資料傳送 sende

Android socket通過UDP的方式傳送接收資料

Android socket通過UDP的方式來發送和接收資料,從而進行手機間的通訊。 傳送方: public class SendToAIUIUtils { private static InetAddress mAddress; p