linux udp socket程式設計例項

2021-06-16 17:41:54 字數 2501 閱讀 2250

在上面的客戶端,也是可以執行bind()和connect操作的,在下面的客戶端**中,我們是這麼來實現的。

#if 1

#include "./../../udp_client/src/iolib/iolib.h" /* 新增使用者自已的i/o函式庫 */

#define max_line 100

//extern int checkselect(int handfd,char *rwflag);

void my_fun(char * p)

int getudpserversocketid(int argc, char *argv)

sockfd = socket(af_inet, sock_dgram, 0);

if(sockfd == -1)

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(atoi(argv[2]));

inet_aton(argv[1], &servaddr.sin_addr.s_addr);

if(inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)

if(bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) == -1)

return sockfd;

}int main(int argc, char *argv)

else

sleep(2);

}i=0;

}} if(close(s_fd) == -1)

return 0;

}#endif

#include "./iolib/iolib.h" /* 新增使用者自已的i/o函式庫 */

#define max_line 80

int getudpclietnsocketid(int argc, char *argv)

#endif

sockfd = socket(af_inet, sock_dgram, 0);

if(sockfd == -1)

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(atoi(argv[2]));

inet_aton(argv[1], &servaddr.sin_addr.s_addr);

if(inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)

#if 1

if(argv[3]!=null)

if (bind(sockfd, (struct sockaddr *) &clientaddr, sizeof(struct sockaddr_in)) == -1)

}#endif

//inet_pton(af_inet, "127.0.0.1", &servaddr.sin_addr.s_addr);

if(connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))==-1)

return sockfd;

}int main(int argc, char *argv)

len = my_write(s_fd, buf, strlen(buf)); /* 傳送字串,該串包含『\0』結束符 */

if(len == -1) /* 寫操作失敗,程式退出 */

else}}

/* 讀取伺服器程式發回的串,由於是同一臺主機通訊,不存在延時的問題。

* 但是在真正的網路環境中,要處理讀操作的延時問題。

*/if(checkselect(s_fd,"r")==0)

if(len == -1) /* 讀失敗,退出程式 */

其測試**可以在:linux udp測試**

靜態聯編與動態聯編

在c 中,多型性主要是通過函式過載實現的。過載函式是指程式中對同名函式進行呼叫時,編譯器會根據函式引數的型別和個數,決定該呼叫哪一段函式 來處理這個函式呼叫。這種把函式呼叫與適當的函式 相對應的動作,叫做聯編。聯編分為靜態聯編和動態聯編。在編譯階段決定執行哪個同名的被呼叫函式,稱為靜態聯編。在編譯階...

靜態聯編和動態聯編

聯編是指乙個電腦程式自身彼此關聯 使乙個 源程式經過編譯 連線,成為乙個可執行程式 的過程,在這個聯編過程中,需要確定程式中的操作呼叫 函式呼叫 與執行該操作 函式 的 段之間的對映關係,按照聯編所進行的階段不同,可分為靜態聯編和動態聯編。靜態聯編 呼叫函式和被調函式在程式編譯時,他們在記憶體中的位...

靜態聯編和動態聯編

聯編就是將模組或者函式合併在一起生成可執行 的處理過程,同時對每個模組或者函式呼叫分配記憶體位址,並且對外部訪問也分配正確的記憶體位址,它是電腦程式彼此關聯的過程。按照聯編所進行的階段不同,可分為兩種不同的聯編方法 靜態聯編和動態聯編。靜態聯編是指在編譯階段就將函式實現和函式呼叫關聯起來,因此靜態聯...