//獲得本機ip位址
char* getlocaladdr()
}return addrip;
}
//守護程序的建立
守護程序(daemon)是指其他多工作業系統中在後台執行的電腦程式,並不會接受計算機使用者的直接控制,其好處是不占用終端。
void daemonize()
setsockopt(sockfd, sol_socket,so_reuseaddr,(const char*)&reuse,sizeof(reuse));//設定socket重用
my_addr.sin_family = af_inet;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr=hton1(inaddr_any);
if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(my_addr))==-1) //繫結埠
if(listen(sockfd,max_pending_connects)==-1)//偵聽
return sockfd;
}//服務與客戶程式通訊的主要呼叫函式
int socketserver(int nport, char * szreply, int nreplylen, char * szrequest)
iret = recv(client_fd, szrequest, max_recv_len,0);//接受資料
szrequest[iret]=0;
if(send(client_fd, szreply,nrepleylen,0)==-1) //傳送回應
perror("sending data to the client failed");
close(client_fd);
return 0;
}//服務與客戶程式通訊的主函式
void main()
}
socket客戶程式
#include #include #include #include #include #include #include #include #include #define max_recv_len 100
//建立與服務程式連線函式
int getconnect(char* host, int port)
serv_addr.sin_family=af_inet;
if((phostent=gethostbyname(host))==null)
memcpy((char*)&(serv_addr.sin_addr),phostent->h_addr,phostent->h_lenght);
serv_addr.sin_port=htons(port);
if(connect(sockfd,(struct sockaddr*)&serv_addr, sizeof(serv_addr))==-1)
return sockfd;
}//客戶程式與服務程式通訊的主要呼叫函式
void socketclient(char* szhost, int nport, char* szrequest, int nrequsetlen,char* szreply)
iret = recv(sockfd, szreply, max_recv_len,0) //接受資料
szreply[iret]=0;
close(sockfd);
}void main()
linux下socket程式設計
一 什麼是socket socket可以看成是使用者程序與核心網路協議棧的程式設計介面。socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。socket api是一層抽象的網路程式設計介面,適用於各種底層網路協議,如ipv4 ipv6。struct sockaddr in...
linux下socket程式設計
作為乙個嵌入式開發者,在實際的研發專案中,常常需要編寫socket網路程式設計介面,提供給軟體開發人員。下面將提供乙個常用的 模板 客戶端的功能可以用微控制器多功能除錯助手進行驗證 include include include include include include include def...
linux下socket程式設計
簡單的linux下socket程式設計,分別基於tcp和udp協議實現的簡單程式 linux下socket程式設計可以概括為以下幾個函式的運用 流程 將套接字繫結到伺服器的網路位址上 if bind server sockfd,struct sockaddr my addr,sizeof struc...