基於tcp的網路程式設計協議分析

2021-09-07 09:07:38 字數 2709 閱讀 4494

在本地電腦的虛擬機器上搭建乙個tcp伺服器,**如下

#include #include #include #include #include #include #include #include #define buffer_size 128

int main(int argc, char *ar**)

; if (argc < 3)

if((listenfd = socket(af_inet,sock_stream,0)) < 0)

ret = setsockopt(listenfd,sol_socket,so_reuseaddr,(void *)&val,sizeof(val));

if(ret == -1)

printf("listen1 = %d\n",listenfd);

//set sockaddr_in

bzero(&servaddr,sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(atoi(ar**[2]));

servaddr.sin_addr.s_addr = inet_addr(ar**[1]);

//bind

if(bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr)) < 0)

printf("bind successfully");

if (listen(listenfd,10) == -1)

printf("listen the socket");

//accept()

peerlen = sizeof(cliaddr);

while(1)

memset(buffer,0,sizeof(buffer));

if(recv(confd, buffer, buffer_size,0) == -1)

printf("the receive data is %s\n",buffer);

memset(buffer,0,sizeof(buffer));

strcpy(buffer, "welcome to beijing");

send(confd, buffer, buffer_size, 0);

close(confd);

}close(listenfd);

exit(0);

}

手機上安裝乙個tcp客戶端,連線上伺服器的過程分析 

手機ip為:192.168.1.15 port:34705

手機ip為:192.168.1.43  port:8653

tcp.port eq 80 // 不管埠是**的還是目標的都顯示

tcp.port == 80

tcp.port eq 2722

tcp.port eq 80 or udp.port eq 80

tcp.dstport == 80 // 只顯tcp協議的目標埠80

tcp.srcport == 80 // 只顯tcp協議的**埠80

udp.port eq 15000

過濾埠範圍

// get包

// post包

// 響應包

一定包含如下content-type:

tcp.flags 顯示包含tcp標誌的封包。

tcp.flags.syn == 0x02     顯示包含tcp syn標誌的封包。

tcp.window_size == 0 && tcp.flags.reset != 1

注意:dhcp協議的檢索規則不是dhcp/dhcp, 而是bootp

以尋找偽造dhcp伺服器為例,介紹wireshark的用法。在顯示過濾器中加入過濾規則,

顯示所有非來自dhcp伺服器並且bootp.type==0x02(offer/ack/nak)的資訊:

bootp.type==0x02 and not ip.src==192.168.1.1

Java網路程式設計 基於TCP協議的網路程式設計(三)

增加聊天室功能 1.可以看到是誰發的訊息。2.實現私聊功能。實現方法 對於第乙個功能,可以使用map集合來儲存使用者資訊 第二個功能可以在客戶端傳送不同訊息時,對這些訊息進行處理,比如在訊息內容前後新增一些特殊字元,通過這些特殊字元來判斷。實現 特殊字元類 public inte ce chatro...

QT基於tcp協議網路程式設計

基於qt網路程式設計 基於tcp協議 c s模式程式設計 所需要的類 qtcpserver qtcpsocket 利用qt基於tcp協議編寫c s模式程式 兩個類中的訊號 qtcpserver newconnection qtcpsocket readyread connected disconne...

基於TCP協議的網路程式設計 socket程式設計 1

1.1.網路位元組序 記憶體中的多位元組資料相對於記憶體位址有大端和小端之分,磁碟檔案中的多位元組資料相對於檔案中的偏移位址也有大端小端之分。網路資料流同樣有大端小端之分,那麼如何定義網路資料流的位址呢?傳送主機通常將傳送緩衝區中的資料按記憶體位址從低到高的順序發出,接收主機把從網路上接到的位元組依...