1、伺服器的UDP通訊是什麼?
用戶數據文報協議 (UDP) 是一個無連接協議。跟 TCP 的操作不同,計算機並不建立連接。另外 UDP 應用程序可以是客戶機,也可以是伺服器。
為了傳輸數據,首先要設置客戶計算機的 LocalPort 屬性。然後,伺服器計算機只需將 RemoteHost 設置為客戶計算機的 Internet 地址,並將 RemotePort 屬性設置為跟客戶計算機的 LocalPort 屬性相同的埠,並調用 SendData 方法來著手發送信息。於是,客戶計算機使用 DataArrival 事件內的 GetData 方法來獲取已發送的信息。
2、Java的udp客戶、伺服器通信,有界面,用ip地址連接,伺服器能保存通信的信息到一個文件夾
服務端和客戶端代碼:
public class Main {
public static void main(String[] args) throws Exception {
UDPServer server = new UDPServer();
server.start(6666, "logs/udpserver.txt");
Thread.sleep(500);
UDPClient client = new UDPClient();
client.start(6666);
for(int i = 0; i < 10; i++) {
client.send("Hello: " + i + "\n");
}
client.stop();
Thread.sleep(500);
server.stop();
}
}
class UDPServer implements Runnable{
private DatagramSocket ds;
private boolean running = false;
private Thread thread = null;
private FileOutputStream fos;
public void start(int port, String logFilename) throws Exception{
if(!running) {
running = true;
ds = new DatagramSocket(new InetSocketAddress("127.0.0.1", 6666));
fos = new FileOutputStream(logFilename);
thread = new Thread(this);
thread.start();
}
}
@Override
public void run() {
while(running) {
try {
byte[] buf = new byte[2048];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.setSoTimeout(500);
try {
ds.receive(dp);
fos.write(dp.getData(), 0, dp.getLength());
} catch (SocketTimeoutException e) {
}
} catch (IOException e) {
e.printStackTrace();
break;
}
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
ds.close();
}
public void stop() {
if(running) {
running = false;
thread.interrupt();
}
}
}
class UDPClient{
private DatagramSocket ds;
public void start(int port) throws Exception{
ds = new DatagramSocket(0);
ds.connect(new InetSocketAddress("127.0.0.1", 6666));
}
public void send(String message) {
byte[] data = message.getBytes();
DatagramPacket dp = new DatagramPacket(data, data.length);
try {
ds.send(dp);
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop() {
if (ds != null) {
ds.close();
}
}
}
界面代碼你自己寫吧
3、vlc 1.0.3版本怎樣設置udp埠和伺服器地址?
我可以告訴你,採納我
4、使用udp協議的伺服器是哪種類型?
ARP(Address Resolution Protocol)地址解析協議
它是用於映射計算機的物理地址和臨時指定的網路地址。啟動時它選擇一個協議(網路層)地址,並檢查這個地址是否已經有別的計算機使用,如果沒有被使用,此結點被使用這個地址,如果此地址已經被別的計算機使用,正在使用此地址的計算機會通告這一信息,只有再選另一個地址了。
SNMP(Simple Network Management P)網路管理協議
它是TCP/IP協議中的一部份,它為本地和遠端的網路設備管理提供了一個標准化途徑,是分布式環境中的集中化管理的重要組成部份。
BGP4(Border Gateway Protocol Vertion 4)邊界網關協議-版本4
它是用於在自治網路中網關主機(每個主機有自己的路由)之間交換路由信息的協議,它使管理員能夠在已知的路由策略上配置路由加權,可以更方便地使用無級內部域名路由(CIDR),它是一種在網路中可以容納更多地址的機制,它比外部網關協議(EGP)更新。BGP4經常用於網關主機之間,主機中的路由表包括了已知路由的列表,可達的地址和路由加權,這樣就可以在路由中選擇最好的通路了。BGP在區域網中通信時使用內部BGP(IBGP),因為IBGP不能很好工作。
DHCP(Dynamic Host Configuration Protocol)動態主機配置協議
它是在TCP/IP網路上使客戶機獲得配置信息的協議,它是基於BOOTP協議,並在BOOTP協議的基礎上添加了自動分配可用網路地址等功能。這兩個協議可以通過一些機制互操作。DHCP協議在安裝TCP/IP協議和使用TCP/IP協議進行通迅時,必須配置IP地址、子網掩碼、預設網關三個參數,這三個參數可以手動配置,也可以使用DHCP自動配置。
FTP(File Transfer Protocol)文件傳輸協議
它是一個標准協議,是在計算機和網路之間交換文件的最簡單的方法。象傳送可顯示文件的HTTP和電子郵件的SMTP一樣,FTP也是應用TCP/IP協議的應用協議標准。FTP通常用於將網頁從創作者上傳到伺服器上供人使用,而從伺服器上下傳文件也是一種非常普遍的使用方式。作為用戶,您可以用非常簡單的DOS界面來使用FTP,也可以使用由第三方提供的圖形界面的FTP來更新(刪除,重命名,移動和復制)伺服器上的文件。現在有許多伺服器支持匿名登錄,允許用戶使用FTP和ANONYMOUS作為用戶名進行登錄,通常可使用任何口令或只按回車鍵。
HDLC(High-Level Data Link Control)高層數據鏈路協議
它是一組用於在網路結點間傳送數據的協議。在HDLC中,數據被組成一個個的單元(稱為幀)通過網路發送,並由接收方確認收到。HDLC協議也管理數據流和數據發送的間隔時間。HDLC是在數據鏈路層中最廣泛最使用的協議之一。現在作為ISO的標准,HDLC是基於IBM的SDLC協議的,SDLC被廣泛用於IBM的大型機環境之中。在HDLC中,屬於SDLC的被稱為通響應模式(NRM)。在通常響應模式中,基站(通常是大型機)發送數據給本地或遠程的二級站。不同類型的HDLC被用於使用X.25協議的網路和幀中繼網路,這種協議可以在區域網或廣域網中使用,無論此網是公共的還是私人的。
HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本傳輸協議-版本1.1
它是用來在Internet上傳送超文本的傳送協議。它是運行在TCP/IP協議族之上的HTTP應用協議,它可以使瀏覽器更加高效,使網路傳輸減少。任何伺服器除了包括HTML文件以外,還有一個HTTP駐留程序,用於響應用用戶請求。您的瀏覽器是HTTP客戶,向伺服器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級鏈接時,瀏覽器就向伺服器發送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進行必要的操作後回送所要求的文件。
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議
它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操作,並返回網路上傳送回的結果。HTTPS實際上應用了Netscape的完全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用埠443,而不是象HTTP那樣使用埠80來和TCP/IP進行通信。)SSL使用40 位關鍵字作為RC4流加密演算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。
ICMP(Internet Control Message Protocol)Internet控制信息協議
它是一個在主機和網關之間消息控制和差錯報告協議。ICMP使用IP數據報,但消息由TCP/IP軟體處理,對於應用程序使用者是不可見的。在被稱為Catenet的系統中,IP協議被用作主機到主機的數據報服務。網路連接設備稱為網關。這些網關通過網關到網關協議(GGP)相互交換用於控制的信息。通常,贍養或目的主機將和源主機通信,例如,為報告在數據報過程中的錯誤。為了這個目的才使用了ICMP,它使用IP做於底層支持,好象它是一個高層協議,而實際上它是IP的一部分,必須由其它IP模塊實現。ICMP消息在以下幾種情況下發送:當數據報不能到達目的地時,當網關的已經失去緩存功能,當網關能夠引導主機在更短路由上發送。IP並非設計為設計為絕對可靠,這個協議的目的是為了當網路出現問題的時候返回控制信息,而不是使IP協議變得絕對可靠,並不保證數據報或控制信息能夠返回。一些數據報仍將在沒有任何報告的情況下丟失。
IPv6(Internet Protocol Version 6)Internet協議-版本6
它是Internet協議的最新版本,已作為IP的一部分並被許多主要的操作系統所支持。IPv6也被稱為「Ipng」(下一代IP),它對現行的IP(版本4)進行重大的改進。使用IPv4和IPv6的網路主機和中間結點可以處理IP協議中任何一層的包。用戶和服務商可以直接安裝IPv6而不用對系統進行什麼重大的修改。相對於版本4新版本的最大改進在於將IP地址從32位改為128位,這一改進是為了適應網路快速的發展對IP地址的需求,也從根本上改變了IP地址短缺的問題。簡化IPv4首部欄位被刪除或者成為可選欄位,減少了一般情況下包的處理開銷以及IPv6首部佔用的帶寬。改進IP 首部選項編碼方式的修改導致更加高效的傳輸,在選項長度方面更少的限制,以及將來引入新的選項時更強的適應性。加入一個新的能力,使得那些發送者要求特殊處理的屬於特別的傳輸流的包能夠貼上標簽,比如非預設質量的服務或者實時服務。為支持認證,數據完整性以及(可選的)數據保密的擴展都在IPv6中說明。本文描述IPv6基本首部以及最初定義的IPv6 擴展首部和選項。還將討論包的大小問題,數據流標簽和傳輸類別的語法,以及IPv6對上層協議的影響。IPv6 地址的格式和語法在其它文章中單獨說明。IPv6版的 ICMP 是所有IPv6應用都需要包含的。
OSPF(Open Shortest Path First)開放最短路優先
OSPF是用於大型自主網路中替代路由信息協議的協議標准。象RIP一樣,OSPF也是由IETF設計用作內部網關協議族中的一個標准。在使用OSPF時網路拓樸結構的變化可以立即在路由器上反映出來。不象RIP,OSPF不是全部當前結點保存的路由表,而是通過最短路優先演算法計算得到最短路,這樣可以降低網路通信量。如果您熟悉最短路優先演算法就會知道,它是一種只關心網路拓樸結構的演算法,而不關心其它情況,如優先權的問題,對於這一點,OSPF改變了演算法使它根據不同的情況給某些通路以優先權。
5、QQ登錄伺服器的TCP、UDP類型分別是什麼意思?
TCP---傳輸控制協議,提供的是面向連接、可靠的位元組流服務。當客戶和伺服器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報前不用在客戶和伺服器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快
現在Internet上流行的協議是TCP/IP協議,該協議中對低於1024的埠都有確切的定義,他們對應著Internet上一些常見的服務。這些常見的服務可以分為使用TCP埠(面向連接)和使用UDP埠(面向無連接)兩種。
說到TCP和UDP,首先要明白「連接」和「無連接」的含義,他們的關系可以用一個形象地比喻來說明,就是打電話和寫信。兩個人如果要通話,首先要建立連接——即打電話時的撥號,等待響應後——即接聽電話後,才能相互傳遞信息,最後還要斷開連接——即掛電話。寫信就比較簡單了,填寫好收信人的地址後將信投入郵筒,收信人就可以收到了。從這個分析可以看出,建立連接可以在需要痛心地雙方建立一個傳遞信息的通道,在發送方發送請求連接信息接收方響應後,由於是在接受方響應後才開始傳遞信息,而且是在一個通道中傳送,因此接受方能比較完整地收到發送方發出的信息,即信息傳遞的可靠性比較高。但也正因為需要建立連接,使資源開銷加大(在建立連接前必須等待接受方響應,傳輸信息過程中必須確認信息是否傳到及斷開連接時發出相應的信號等),獨佔一個通道,在斷開連接錢不能建立另一個連接,即兩人在通話過程中第三方不能打入電話。而無連接是一開始就發送信息(嚴格說來,這是沒有開始、結束的),只是一次性的傳遞,是先不需要接受方的響應,因而在一定程度上也無法保證信息傳遞的可靠性了,就像寫信一樣,我們只是將信寄出去,卻不能保證收信人一定可以收到。
TCP是面向連接的,有比較高的可靠性,
一些要求比較高的服務一般使用這個協議,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向無連接的,使用這個協議的常見服務有DNS、SNMP、QQ等。對於QQ必須另外說明一下,QQ2003以前是只使用UDP協議的,其伺服器使用8000埠,偵聽是否有信息傳來,客戶端使用4000埠,向外發送信息(這也就不難理解在一般的顯IP的QQ版本中顯示好友的IP地址信息中埠常為4000或其後續埠的原因了),即QQ程序既接受服務又提供服務,在以後的QQ版本中也支持使用TCP協議了。
6、UDP伺服器是做什麼用的?
UDP伺服器,就是首發數據,進行數據處理的。與TCP不同的是不用建立連接,直接調用recvfrom來收包。
開始就是基本的socket初始化地址什麼的。
要求多個線程處理客戶端命令,那recvfrom收包後,考慮把客戶端的地址信息保存,便於sendto,對接收的數據包,交給線程進行處理,每個線程可以向一塊共享內存、隊列里寫入收到的數據和對應的客戶端信息,每次寫的時候對這塊共享資源加鎖,多個線程對共享資源讀是加鎖,讀完解鎖,並開始處理數據。
處理完,用sendto發回去。
不是什麼大項目。小程序而已。
7、android UDP 編程 伺服器端如何獲取伺服器端的IP地址,然後發送給客戶端
既然是UDp 應該是 客戶端能獲取吧?
DatagramSocket server = new DatagramSocket(3236);
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
System.out.println("伺服器已經啟動");
String sendMessage132 = "";
String sendMessage129 = "";
int port132 = 0;
int port129 = 0;
InetAddress address132 = null;
InetAddress address129 = null;
for (;;) {
server.receive(packet);
String receiveMessage = new String(packet.getData(), 0,
packet.getLength());
System.out.println(receiveMessage);
// 接收到clientA
if (receiveMessage.contains("132")) {
port132 = packet.getPort();
address132 = packet.getAddress();
sendMessage132 = "host:" + address132.getHostAddress()
+ ",port:" + port132;
}
地址 埠 都能通過 接收到的packet 獲取, 不知道我說的跟你想要的一樣不
8、udp伺服器怎麼獲取一個客戶端的地址
以VB為例,在udpWinSock_DataArrival事件中,輸入下面的代碼,即可獲取客戶端IP,發送消息給客服端。,如果是客戶端,需要把該IP地址轉發給伺服器。
Private Sub udpWinSock_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Dim Strs As String
udpWinSock.GetData strData, vbString '接收到客戶端信息
udpWinSock.RemoteHost = udpWinSock.RemoteHostIP '獲取客服端的IP,並將要對話的客服端ip設置為此IP
'立即發送文本給客戶端
Strs = 「已接收成功您的信息:" & strData
udpWinSock.SendData Strs '發送回復信息給當前客戶端
End Sub
9、UDP代理伺服器怎麼判斷來自目標伺服器的數據應當發往哪個客戶端?
代理服務所起的copy是一個橋的作用,它是網路信息的中轉站。在網路中應用代理服務一般是基於以下幾個原因:
1 充分利用IP地址資源。在區域網中,一般對外的IP地址都是非常有限的,為了保證區域網內部的主機都能夠訪問互聯網資源,通過網路代理就可以實現。
2 能夠保證網路安全。網路代理可以充當內部網和互聯網之間的防火牆,通過過濾IP地址,限定某些IP地址對外部資源的訪問。
3 能夠有效地隱藏自己的IP地址和主機名。由於所有對外網的請求都是通過代理伺服器實現的,所以目的主機只能知道代理伺服器的IP地址。
4 提高網路速度。通常代理伺服器都設有一個較大的硬碟緩沖區,它存儲界數據,當你再訪問相同的數據時,則可以直接從緩沖區中取出信息,從而提高訪問速度。一般都用的是小鳥雲伺服器,穩定性以及速度很快感覺挺好的。