計算機網路 五 ros下socket程式設計示例

2021-10-20 19:50:00 字數 2608 閱讀 8778

伺服器端

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define port 8080

//埠號

#define log 1

//請求佇列中最大連線數量

using

namespace std;

int main (

int argc,

char

** ar**)

/* *@fuc: 初始化server套節字位址資訊

*/memset((

void*)

&sever,0,

sizeof

(sever));

sever.sin_family = af_inet;

sever.sin_addr.s_addr =

htonl

(inaddr_any)

; sever.sin_port =

htons

(port);/*

*@fuc: 用bind()函式,將套接字與指定的協議位址繫結

*/if(

bind

(listenfd,

(struct sockaddr *

)&sever,

sizeof

(sever)

)<0)

/* *@fuc: 使用listen()函式,等待客戶端的連線

*/if(

listen

(listenfd, log)

<0)

addrlen =

sizeof

(client)

;//不斷監聽客戶端請求

while

(ros::ok)

printf

("you got a connection from client's ip is %s, port is %d\n"

,inet_ntoa

(client.sin_addr)

,ntohs

(client.sin_port));

send

(connectfd,

"hello!",8

,0);

close

(connectfd);}

close

(listenfd)

;return0;

}

客戶端
#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define myport 8080

//埠號

#define buf_size 1024

//資料緩衝區最大長度

char

* server_ip =

"10.203.206.10"

;int result =0;

using

namespace std;

intmain

(int argc,

char

**ar**)

/* *@fuc: 伺服器端ip4位址資訊,struct關鍵字可不寫

*@fuc: 初始化sever位址資訊

*/struct sockaddr_in sev_addr;

memset

(&sev_addr,0,

sizeof

(sev_addr));

sev_addr.sin_family = af_inet;

sev_addr.sin_port =

htons

(myport)

; sev_addr.sin_addr.s_addr =

inet_addr

(server_ip)

; std::cout <<

"connecting..."

<< std::endl;

/* *@fuc: 使用connect()函式來配置套節字,建立乙個與tcp伺服器的連線

*/if(

connect

(socket_cli,

(struct sockaddr*

)&sev_addr,

sizeof

(sev_addr)

)<0)

else

std::cout <<

"connected successfullly!"

<< std::endl;

while

(ros::ok)

/* *@fuc: 關閉連線

*/close

(socket_cli)

;return0;

}

啟動說明

計算機網路 五

鏈路層可能提供的服務包括 在傳送節點,為了避免位元差錯,使用 差錯檢測和糾錯位元 edc 來增強資料d 差錯檢測和糾正技術有時使接收方檢測到已經出現的位元差錯,但並非總是這樣。即使採用差錯檢測位元,也還是可能有未檢出位元差錯的情況 因此,主要是選擇乙個差錯檢測方案,使得這種事件發生的概率很小。可以使...

計算機網路(五)

總結 第五彈 物理層 在物理通道實體之間合理地通過中間系統,為位元傳輸所需的物理連線的啟用 保持和去除提供機械的 電氣的 功能性和規程性的手段。主要功能 實現位元流的透明傳輸,為dl層提供資料傳輸服務。dte 指的是資料終端裝置,是對屬於使用者所有的連網裝置或工作站的統稱,它們是通訊的信源或信宿。d...

計算機網路(五)

1 網路層三大功能 1 將分組從乙個輸入鏈路介面轉移到適當的輸出鏈路介面的路由器本地動作 路由器通過以分組首部欄位的值為索引,在 表中查詢輸出鏈路介面 2 路由選擇 決定分組從源到目的地所採取的端到端路徑,是網路範圍內的過程 路由器接收集中式 分布式產生的路由選擇協議報文,用於配置 表 3 連線建立...