在上面的客戶端,也是可以執行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 中,多型性主要是通過函式過載實現的。過載函式是指程式中對同名函式進行呼叫時,編譯器會根據函式引數的型別和個數,決定該呼叫哪一段函式 來處理這個函式呼叫。這種把函式呼叫與適當的函式 相對應的動作,叫做聯編。聯編分為靜態聯編和動態聯編。在編譯階段決定執行哪個同名的被呼叫函式,稱為靜態聯編。在編譯階...
靜態聯編和動態聯編
聯編是指乙個電腦程式自身彼此關聯 使乙個 源程式經過編譯 連線,成為乙個可執行程式 的過程,在這個聯編過程中,需要確定程式中的操作呼叫 函式呼叫 與執行該操作 函式 的 段之間的對映關係,按照聯編所進行的階段不同,可分為靜態聯編和動態聯編。靜態聯編 呼叫函式和被調函式在程式編譯時,他們在記憶體中的位...
靜態聯編和動態聯編
聯編就是將模組或者函式合併在一起生成可執行 的處理過程,同時對每個模組或者函式呼叫分配記憶體位址,並且對外部訪問也分配正確的記憶體位址,它是電腦程式彼此關聯的過程。按照聯編所進行的階段不同,可分為兩種不同的聯編方法 靜態聯編和動態聯編。靜態聯編是指在編譯階段就將函式實現和函式呼叫關聯起來,因此靜態聯...