目錄
一、概述
這裡的例項主要參考《unix網路程式設計卷1:套接字聯網api》,這裡記錄一下。主要是通過這裡的記錄,一直去把裡面的東西都coding和理解一遍。
二、例項
服務端:
#include #include #include #include #include #include #include #include #include #include #define maxline 256
#define port 7777
#define listenq 10
void sys_err(char* msg)
int writen(int fd,const void *vptr,int n) else
}nleft -= nwrite;
ptr += nwrite;
}return n;
}int main(int argc,char* ar**)
*/listfd=socket(af_inet,sock_stream,0);
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(port);
/*if (inet_pton(af_inet,ar**[1],&servaddr.sin_addr)<=0)
*/servaddr.sin_addr.s_addr = inaddr_any;
if (bind(listfd,(struct sockaddr *)&servaddr,sizeof(servaddr)) < 0)
listen(listfd,listenq);
printf("enter listen...\n");
while (1)
ticks=time(null);
snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));
if (writen(connfd,buff,strlen(buff)) < 0)
close(connfd);
}return 0;
}
客戶端:
#include #include #include #include #include #include #include #include #include #define maxline 256
#define port 7777
void sys_err(char *msg)
int main(int argc , char **ar**)
sockfd=socket(af_inet,sock_stream,0);
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(port);
if (inet_pton(af_inet,ar**[1],&servaddr.sin_addr) <= 0)
connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
while((n=read(sockfd,recvline,maxline)) >0 )
}if(n <0)
return 0;
}
測試:
服務端:./daytimesrv
客戶端:
./daytimecli 127.0.0.1
三、總結
TCP套接字程式設計
網路程式設計又稱為套接字程式設計,為了與遠端計算機進行資料傳輸,需要連線到網際網路,而程式設計中的 套接字 就是用來連線該網路的工具。它本身具有連線的含義,還可以表示為兩台計算機之間的網路連線。4.呼叫accept函式受理連線請求 基於tcp的服務端 客戶端 tcp伺服器端預設函式呼叫順序 sock...
TCP套接字程式設計
對於socket不理解的可以檢視 c語言通過socket程式設計實現tcp通訊,linux socket程式設計 socket詳解 先看看程式效果圖 提示如果伺服器,直接通過ctrl z關閉,這樣程式占用的位址不會釋放,需要以下操作 1.ps 檢視程序 2.kill 9 程式pid 強制殺死程序 服...
TCP套接字程式設計!!!
一 socket程式設計的基本函式詳解,其中根據客戶端還是服務端,或者根據使用tcp還是udp,函式的呼叫流程有些許區別 1 socket 函式用於建立乙個套接字,一條通訊線路的端點。3 listen 在服務端程式成功建立套接字和與位址進行繫結之後,還需要準備在該套接字上接收新的連線請求。此時呼叫l...