標頭檔案在主頁
編譯方式
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 ...