示例流程圖:
/* 建立乙個udp連線的socket */
sockfd = socket(pf_inet, sock_dgram, 0);
/* 變數servaddr清零 */
bzero(&service_addr, sizeof(service_addr));
service_addr.sin_family = af_inet;
service_addr.sin_addr.s_addr = htonl(udp_ip); //指定ip
service_addr.sin_port = htons(udp_port);
/* 繫結servaddr到建立的socket上 */
bind(sockfd, (struct sockaddr *)&service_addr, sizeof(service_addr));
/* 接收客戶端傳送的資料 */
recvfrom(sockfd, recvline, 1024, 0, (struct sockaddr_in)&client_addr, &n);
printf("[service]: %s\n", recvline);
/* 傳送資料 */
sprintf(sendline, "stop request");
sendto(sockfd, sendline, strlen(sendline), 0, (struct sockaddr *)&client_addr, sizeof(servaddr));
/* 關閉socket連線 */
close(sockfd);
return 1;
}
/*****************************
* udp-client.c
******************************/
#include #include #include #include #define udp_port 58888
#define udp_ip "127.0.0.1"
int main(int argc, char **ar**)
; struct sockaddr_in servaddr;
if(argc != 2)
/* 建立乙個udp的socket連線 */
sockfd = socket(pf_inet, sock_dgram, 0);
/* 變數servaddr清零 */
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(udp_port);
servaddr.sin_addr.s_addr = inet_addr(udp_ip);
char sendline[100];
sprintf(sendline, "hello, world!");
/* 傳送資料 */
sendto(sockfd, sendline, strlen(sendline), 0, (struct sockaddr *)&servaddr, sizeof(servaddr));
/* 接收客戶端傳送的資料 */
recvfrom(sockfd, recvline, sizeof(recvline), 0, (struct sockaddr *)&servaddr, &n);
printf("[client]: %s\n",recvline);
/* 關閉socket連線 */
close(sockfd);
return 1;
}
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...