寫個關於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 使用者...