socket接收訊息

2021-09-27 08:53:27 字數 1486 閱讀 1540

標頭檔案在主頁

編譯方式

gcc server.c -o server
執行方式

./server 埠號
程式主體

int main(int argc, char **ar**) // ./server 埠

//--------建立udp套接字--------

fd = socket(af_inet, sock_dgram, 0);

//--------準備跟af_inet(即ipv4網路層協議)對應的特定ip+port位址結構體--------

struct sockaddr_in addr;

socklen_t len = sizeof(addr);

bzero(&addr, len);

addr.sin_family = af_inet;

//inet_aton("192.168.18.78", &addr.sin_addr); // 繫結指定的ip,並做了位元組序轉換

addr.sin_addr.s_addr = htonl(inaddr_any); // 繫結乙個本機的任意可用ip

addr.sin_port = htons(atoi(ar**[1]));

//--------繫結位址--------

bind(fd, (struct sockaddr *)&addr, len);

//--------用訊號的方式來非同步地接收各個客戶端發來的udp資訊--------

//a. 捕捉訊號sigio

signal(sigio, f);

// b. 設定套接字為非同步工作模式(即使之收到資料是產生訊號sigio)

long flag = fcntl(fd, f_getfl);

flag |= o_async;

fcntl(fd, f_setfl, flag);

// c. 指定本程序為訊號的屬主

fcntl(fd, f_setown, getpid());

addr.sin_addr.s_addr = htonl(inaddr_any); // 繫結乙個本機的任意可用ip

// printf("%s\n", ntoal(addr.sin_addr.s_addr));

// 伺服器忙別的事情

while(1){};

return 0;

}void f(int sig)

接收資料訊息

為了監聽資料訊息,註冊乙個 broadcast receiver 來過濾傳送的 intent 中所包含的動作字串。gtalk 資料訊息和一般的廣播 intent 處理一樣,所以,當它們被 broadcast receiver 接收時,它們沒有任何關聯的傳送者資訊。如果你需要這些元資料,你必須在源 i...

接收kafka訊息

kafka server 127.0.0.1 8081,127.0.0.1 8082,127.0.0.1 8083,127.0.0.1 8084 topics eseal hr test 2 gourp id hthr value string servers value string groupi...

接收訊息 接收語音識別結果

注 由於客戶端快取,開發者開啟或者關閉語音識別功能,對新關注者立刻生效,對已關注使用者需要24小時生效。開發者可以重新關注此帳號進行測試。開啟語音識別後的語音xml資料報如下 1357290913 1234567890123456 引數說明 引數描述 tousername fromusername ...