關於socket UDP傳輸實現

2021-10-02 18:55:44 字數 2716 閱讀 9481

寫個關於socket udp傳輸的帖子,在網上找到的材料,拼湊在一起,執行在windows vs2017中,伺服器端模擬只傳送的情況,具體的**如下:

需要注意的地方:

1.收發兩端可以用不同名字的socket,但收發兩端要定義相同的資料結構來進行接收和傳送;

2.sendto 函式和recvfrom函式在最後乙個引數使用略有不同;」

3.在只編好了一端程式想進行程式輸出檢查時,可借助於wireshark,抓udp包進行分析,注意資料報中資料的長度,wireshark中右側是16進製制的數,表示的是ascii碼,左側是傳送的內容,如圖所示,傳送的是hello world!。

傳送端執行在windows vs2017中:

傳送端的邏輯:建立socket-繫結socket-傳送socket

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#define _winsock_deprecated_no_warnings

intmain

(int argc,

char

* ar**)

socket sclient =

socket

(af_inet, sock_dgram,0)

;//建立socket

if(sclient == invalid_socket)

struct sockaddr_in seraddr;

seraddr.sin_family = af_inet;

seraddr.sin_port =

htons

(9527);

seraddr.sin_addr.s_un.s_addr =

inet_addr

("192.168.0.100");

//傳送端位址

struct sockaddr_in cliaddr;

cliaddr.sin_family = af_inet;

cliaddr.sin_port =

htons

(9527);

cliaddr.sin_addr.s_un.s_addr =

inet_addr

("192.169.230.1");

//接收端位址

int bind =

bind

(sclient,

(struct sockaddr *

)&seraddr,

sizeof

(seraddr));

//繫結socket

if(bind == socket_error)

while(1

)}closesocket

(sclient)

;wsacleanup()

;return0;

}

接收端執行在windows vs2017中:接收端的邏輯:建立socket-繫結socket-接收socket

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#define _winsock_deprecated_no_warnings

intmain

(int argc,

char

* argr)

//建立套接字

socket revsocket =

socket

(af_inet, sock_dgram,0)

;if(revsocket == invalid_socket)

//繫結ip

struct sockaddr_in dest;

dest.sin_family = af_inet;

dest.sin_port =

htons

(9257);

dest.sin_addr.s_un.s_addr =

inet_addr

("192.168.0.100");

//接收端的ip

struct sockaddr_in source;

source.sin_family = af_inet;

source.sin_port =

htons

(9257);

source.sin_addr.s_un.s_addr =

inet_addr

("192.168.0.106");

//傳送端的ip

int bind =

bind

(revsocket,

(struct sockaddr *

)&dest,

sizeof

(dest));

if(bind == socket_error)

char revdata[30]

;while(1

)else

}closesocket

(revsocket)

;wsacleanup()

;return0;

}

socket,UDP傳送ARP包 c 實現

內容可能和網上很多大神寫的類似,我也沒有什麼創新的地方,全當寫日記了,學了網路程式設計和計算機系統之後,覺得對ip資料報有了些了解,所以想嘗試一下能不能寫出區域網arp攻擊工具出來.以下是思路1.先了解arp攻擊 的原理,攻擊物件是我舍友,我想要讓他不能正常上網,所以給他傳送arp閘道器欺騙包,告訴...

關於Socket傳輸物件

最近有個專案關於用socket傳輸物件話不多說直接上 服務端thread tcpthread new thread new threadstart listen tcpthread.start 啟動乙個子執行緒來呼叫socket的監聽方法 socket socketaccpet public voi...

關於檔案傳輸

最近專案經常使用到檔案傳輸ftp url訪問等方式,查閱了些資料做了些整理和新增並不完善,希望能對大家有所幫助。1.ftp檔案傳輸原始碼 1.1採用runtime.getruntime exec 執行作業系統的ftp命令 1.1.1 ftp上傳指令碼 windows指令碼 open 目標ip 使用者...