UNIX網路程式設計學習(3)--簡單時間獲取伺服器程式
#include "unp.h"
#include <time.h>
int
main(int argc, char **argv)
{
int listenfd, connfd;
struct sockaddr_in servaddr;
char buff[MAXLINE];
time_t ticks;
listenfd = Socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(10086); /* daytime server */
Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
Listen(listenfd, LISTENQ);
for ( ; ; ) {
connfd = Accept(listenfd, (SA *) NULL, NULL);
ticks = time(NULL);
snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
Write(connfd, buff, strlen(buff));
Close(connfd);
}
}
上面,之所以用10086號埠,而不用13號,是可能執行時發生bind失敗:permission denied的錯誤。在前面的客戶端程式碼中也把埠號改為10086既可以正確演示程式了。程式碼中用到了包裹函式。類似下面的程式碼:
void
Bind(int fd, const struct sockaddr *sa, socklen_t salen)
{
if (bind(fd, sa, salen) < 0)
err_sys("bind error");
}
void
Connect(int fd, const struct sockaddr *sa, socklen_t salen)
{
if (connect(fd, sa, salen) < 0)
err_sys("connect error");
}
void
Getpeername(int fd, struct sockaddr *sa, socklen_t *salenptr)
{
if (getpeername(fd, sa, salenptr) < 0)
err_sys("getpeername error");
}
相關文章
- UINX 網路程式設計學習(2)--簡單的時間獲取客戶程式UI程式設計
- UNIX網路程式設計學習(15)--使用單程式和select的TCP伺服器程式程式設計TCP伺服器
- UNIX網路程式設計學習(16)--使用poll的TCP伺服器程式程式設計TCP伺服器
- Linux程式設計(獲取系統時間)Linux程式設計
- python網路程式設計學習筆記(3):socket網路伺服器Python程式設計筆記伺服器
- 不同程式語言中獲取現在的Unix時間戳時間戳
- UNIX網路程式設計學習(18)--UDP回射(伺服器+客戶端)程式程式設計UDP伺服器客戶端
- 風變程式設計,讓程式設計學習更簡單!程式設計
- UNIX網路程式設計學習(17)--檢查套接字選項是否受支援並獲取預設值程式設計
- UNIX網路程式設計 卷2:程式間通訊程式設計
- Java 獲取本地時間與網路時間Java
- java程式設計師3個月業餘時間學習 大資料路徑Java程式設計師大資料
- C#—獲取網路時間C#
- 利用js獲取伺服器時間的兩個簡單方法JS伺服器
- python獲取網路時間和本地時間Python
- 開啟電腦就能學習,風變程式設計讓學習程式設計更簡單程式設計
- Unix高階程式設計學習筆記--系統呼叫簡介程式設計筆記
- c++簡單程式設計-3C++程式設計
- UNIX網路程式設計學習(4)--值-結果引數程式設計
- Unix哲學(Unix程式設計藝術)程式設計
- Unix程式設計藝術,Unix哲學程式設計
- Qt 獲取程式編譯時間QT編譯
- js獲取北京時間程式碼JS
- 程式設計師程式設計時的簡單方法與技巧程式設計師
- javascript獲取本地時間日期程式碼JavaScript
- 用Codecademy學習程式設計,簡單又有趣程式設計
- 前端獲取伺服器時間前端伺服器
- Javascript獲取伺服器時間JavaScript伺服器
- 簡單學懂鏈式程式設計程式設計
- 程式設計師如何獲取新程式設計技能程式設計師
- 《Unix 網路程式設計》15:Unix 域協議程式設計協議
- .Net程式設計師安卓學習之路3:Post資料給網路API程式設計師安卓API
- javascript獲取訪客停留時間程式碼JavaScript
- Java學習十六—掌握註解:讓程式設計更簡單Java程式設計
- UNIX網路程式設計學習(9)--getsockname和getpeername的用法及例項程式設計
- 實時獲取當前時間程式碼例項
- Java程式設計:通過獲取當前時間,判斷今天星期幾Java程式設計
- 《Unix 網路程式設計》13:守護程式和 inetd 超級伺服器程式設計伺服器