Rumah Operasi dan penyelenggaraan Keselamatan Bagaimana untuk menganalisis protokol UDP

Bagaimana untuk menganalisis protokol UDP

May 12, 2023 pm 02:49 PM
udp

一、套接字(socket)

    套接字socket: ip地址 + port端口号。在TCP/IP协议中,它唯一标识网络通讯中的一个进程。套接字用来描述网络连接的 一对一关系。

    TCP/IP协议规定,网络数据流应采用 大端字节序,即 (内存)低地址高字节(数据)。

二、UDP_SOCKET 相关

    UDP 协议  ----  用户数据报协议(面向非连接)   ---  SOCK_DGRAM 

    h表示host,n表示network,l表示32位长整数,s表示16位短整数。

    IPv4地址格式定义在netinet/in.h中,IPv4地址: sockaddr_in结构体,包括16位端口号和32位IP地址

struct sockaddr_in
 {
    uint8_t sin_len;
    sa_family_t sin_family;
    in_port_t sin_port;
    struct in_addr sin_addr;
    char sin_zero[8];
};
Salin selepas log masuk

三、UDP socket 实例:

//udp_server.c

#include <stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<unistd.h>
#include<string.h>
#include<errno.h>


void usage(const char *proc)
{
	printf("%s:[ip][port]\n",proc);
}

int main(int argc,char *argv[])
{
	if(argc != 3)
	{
		usage(argv[0]);
		return 1;
	}
	char *_ip=argv[1];
	int _port=atoi(argv[2]);
	int sock=socket(AF_INET,SOCK_DGRAM,0);
	if(sock < 0)
	{
		perror("socket");
		exit(1);
	}

	struct sockaddr_in local;
	local.sin_family=AF_INET;
	local.sin_port=htons(_port);
	local.sin_addr.s_addr=inet_addr(_ip);
	if(bind(sock,(struct sockaddr*)&local,sizeof(local)) < 0)
	{
		perror("bind");
		exit(2);
	}
	int done=0;
	char buf[1024];
	struct sockaddr_in client;
	socklen_t len=sizeof(client);
	while(!done)
	{
		ssize_t _size=recvfrom(sock,buf,sizeof(buf)-1,0,(struct sockaddr*)&client,&len);
		if(_size > 0)
		{
			buf[_size]=&#39;\0&#39;;
			printf("[%s : %d]: %s\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port),buf);
		}
		else if(_size == 0)
		{
			printf("client close...\n");
		}
		else
		{}
	}
	return 0;
}
Salin selepas log masuk
Salin selepas log masuk

//udp_client.c

#include <stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<unistd.h>
#include<string.h>
#include<errno.h>


void usage(const char *proc)
{
	printf("%s:[ip][port]\n",proc);
}

int main(int argc,char *argv[])
{
	if(argc != 3)
	{
		usage(argv[0]);
		return 1;
	}
	char *_ip=argv[1];
	int _port=atoi(argv[2]);
	int sock=socket(AF_INET,SOCK_DGRAM,0);
	if(sock < 0)
	{
		perror("socket");
		exit(1);
	}

	struct sockaddr_in local;
	local.sin_family=AF_INET;
	local.sin_port=htons(_port);
	local.sin_addr.s_addr=inet_addr(_ip);
	if(bind(sock,(struct sockaddr*)&local,sizeof(local)) < 0)
	{
		perror("bind");
		exit(2);
	}
	int done=0;
	char buf[1024];
	struct sockaddr_in client;
	socklen_t len=sizeof(client);
	while(!done)
	{
		ssize_t _size=recvfrom(sock,buf,sizeof(buf)-1,0,(struct sockaddr*)&client,&len);
		if(_size > 0)
		{
			buf[_size]=&#39;\0&#39;;
			printf("[%s : %d]: %s\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port),buf);
		}
		else if(_size == 0)
		{
			printf("client close...\n");
		}
		else
		{}
	}
	return 0;
}
Salin selepas log masuk
Salin selepas log masuk

运行结果:

Bagaimana untuk menganalisis protokol UDP

Atas ialah kandungan terperinci Bagaimana untuk menganalisis protokol UDP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan komunikasi tak segerak menggunakan protokol PHP dan UDP Bagaimana untuk melaksanakan komunikasi tak segerak menggunakan protokol PHP dan UDP Jul 30, 2023 pm 07:31 PM

Cara menggunakan protokol PHP dan UDP untuk melaksanakan komunikasi tak segerak Dalam aplikasi Internet moden, komunikasi tak segerak telah menjadi kaedah yang sangat penting. Dengan menggunakan komunikasi tak segerak, permintaan pengguna boleh diproses secara serentak tanpa menyekat utas utama, meningkatkan prestasi sistem dan kelajuan tindak balas. Sebagai bahasa pengaturcaraan back-end yang popular, PHP bagaimana menggunakan protokol UDP untuk mencapai komunikasi tak segerak? Artikel ini akan memperkenalkan cara menggunakan protokol UDP untuk melaksanakan komunikasi tak segerak yang mudah dalam PHP dan melampirkan contoh kod tertentu. 1. Pengenalan kepada UDP protocolU

Apakah nombor port UDP? Apakah nombor port UDP? Feb 23, 2023 pm 02:00 PM

Nombor port UDP biasa ialah 53, 69, 161, 2049, 68, dan 520. UDP menggunakan nombor port untuk menempah saluran penghantaran data mereka sendiri untuk aplikasi yang berbeza: 1. Sistem Fail Rangkaian (NFS), nombor port ialah 2049. Protokol Pengurusan Rangkaian Mudah (SNMP), nombor port ialah 161 Sistem (DNS), nombor port ialah 53; 4. Sistem Pemindahan Fail Mudah (TFTP), nombor port ialah 69. Protokol Konfigurasi Hos Dinamik (DHCP), nombor port ialah 68 nombor port ialah 520, dsb.

Bagaimanakah pengaturcaraan rangkaian Java menggunakan UDP untuk komunikasi tanpa sambungan? Bagaimanakah pengaturcaraan rangkaian Java menggunakan UDP untuk komunikasi tanpa sambungan? Apr 15, 2024 pm 12:51 PM

UDP (User Datagram Protocol) ialah protokol rangkaian tanpa sambungan ringan yang biasa digunakan dalam aplikasi sensitif masa. Ia membenarkan aplikasi menghantar dan menerima data tanpa membuat sambungan TCP. Contoh kod Java boleh digunakan untuk mencipta pelayan dan klien UDP, dengan pelayan mendengar datagram masuk dan bertindak balas, dan klien menghantar mesej dan menerima respons. Kod ini boleh digunakan untuk membina kes penggunaan dunia sebenar seperti aplikasi sembang atau sistem pengumpulan data.

Bagaimana untuk menganalisis protokol UDP Bagaimana untuk menganalisis protokol UDP May 12, 2023 pm 02:49 PM

1. Soket: soket: alamat ip + nombor port. Dalam protokol TCP/IP, ia secara unik mengenal pasti proses dalam komunikasi rangkaian. Soket digunakan untuk menerangkan hubungan satu dengan satu antara sambungan rangkaian. Protokol TCP/IP menetapkan bahawa aliran data rangkaian harus menggunakan susunan byte big-endian, iaitu, (memori) alamat rendah bait tinggi (data). 2. Protokol UDP berkaitan UDP_SOCKET----Protokol Datagram Pengguna (bukan berorientasikan sambungan)---SOCK_DGRAMh mewakili hos, n mewakili rangkaian, l mewakili integer panjang 32-bit, dan s mewakili integer pendek 16-bit. Format alamat IPv4 ditakrifkan dalam netinet/in.h, alamat IPv4: sockadd

Apakah perkhidmatan pengangkutan yang disediakan oleh udp? Apakah perkhidmatan pengangkutan yang disediakan oleh udp? Feb 27, 2023 am 10:20 AM

UDP menyediakan perkhidmatan pengangkutan "tanpa sambungan". Nama Cina UDP ialah User Datagram Protocol Ia adalah protokol lapisan pengangkutan tanpa sambungan dalam model rujukan OSI Ia menyediakan perkhidmatan penghantaran maklumat berorientasikan transaksi yang mudah dan tidak boleh dipercayai. kaedah paket IP.

Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java Bagaimana untuk melaksanakan pengaturcaraan UDP untuk komunikasi rangkaian berdasarkan protokol UDP dalam Java May 17, 2023 pm 01:13 PM

Pengenalan asas kepada kelas komunikasi pengaturcaraan UDP DatagramSocket dan DatagramPacket [paket data/datagram] melaksanakan program rangkaian berdasarkan protokol UDP. Datagram UDP dihantar dan diterima melalui soket datagram DatagramSocket Sistem tidak menjamin bahawa datagram UDP akan selamat dihantar ke destinasi, dan tidak pasti bila ia akan tiba. Objek DatagramPacket merangkum datagram UDP, yang mengandungi alamat IP dan nombor port penghantar dan alamat IP dan nombor port penerima. Setiap datagram dalam protokol UDP memberikan maklumat alamat lengkap, jadi tidak perlu mewujudkan sambungan antara pengirim dan penerima. Dua kelas/objek pada teras proses asas Da

Apakah maksud protokol UDP? Apakah maksud protokol UDP? Aug 08, 2023 pm 03:43 PM

UDP ialah protokol lapisan pengangkutan tanpa sambungan yang menyediakan cara untuk menghantar paket data ke rangkaian, tetapi tidak menjamin kebolehpercayaan, urutan dan integriti paket data, dan juga tidak menyediakan kawalan kesesakan dan kawalan aliran, dsb. Fungsi. Ciri-ciri UDP: 1. Tiada sambungan, tidak perlu membuat sambungan sebelum menghantar data, paket data boleh dihantar terus ke hos sasaran 2. Kecekapan, overhed pengepala adalah kecil, hanya 8 bait 3. Tidak boleh dipercayai; tidak memberikan kebolehpercayaan paket data Selepas paket data dihantar, ia tidak akan dihantar semula walaupun ia hilang, dan juga tidak menjamin susunan paket data, dsb.

Penjelasan terperinci mengapa DNS menggunakan UDP dan bukannya TCP! Penjelasan terperinci mengapa DNS menggunakan UDP dan bukannya TCP! Mar 01, 2024 pm 08:16 PM

Sebab utama mengapa DNS (DomainNameSystem) menggunakan UDP (UserDatagramProtocol) dan bukannya TCP (TransmissionControlProtocol) adalah untuk pertimbangan prestasi dan kecekapan. Perkara berikut menerangkan secara terperinci mengapa DNS memilih untuk menggunakan protokol UDP: Permintaan kecil dan respons pantas: Pertanyaan DNS biasanya permintaan kecil, hanya memerlukan beberapa bait pemindahan data. UDP ialah protokol tanpa sambungan yang tidak memerlukan sambungan sebelum berkomunikasi, sebaliknya menghantar paket data ke alamat destinasi dan menunggu respons. Ini menjadikan UDP lebih sesuai untuk senario respons pantas daripada TCP. Kependaman rendah: Pertanyaan DNS biasanya memerlukan kependaman rendah untuk menyediakan perkhidmatan resolusi nama domain yang pantas.

See all articles