linux中的socket程式設計主要是使用socket提供的api進行程式設計,包括客戶端程式設計和伺服器端程式設計,連線又包括可靠連線的tcp程式設計和不可靠連線的udp程式設計,在此提供的連線是tcp連線
源**如下:
客戶端**:
#include
#include
#include
#include
#include
#include
#include
#include
#define servport 3333
#define maxdatasize 100
main(int argc,char *argv)
serv_addr.sin_family=af_inet;
serv_addr.sin_port=htons(servport);
serv_addr.sin_addr.s_addr=inaddr_any;
bzero(&(serv_addr.sin_zero),8);
errid=connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr));
if(errid==-1)
send(sockfd,"which team is win!/n", 19, 0);
recvbytes=recv(sockfd,buf,maxdatasize,0);
if(recvbytes==-1)
buf[recvbytes]='/0';
printf("received:%s",buf);
close(sockfd);
}伺服器端源**為:
#include
#include
#include
#include
#include
#include
#include
#include
#define servport 3333 /*伺服器監聽埠號 */
#define backlog 10 /* 最大同時連線請求數 */
#define maxdatasize 100
main()
my_addr.sin_family=af_inet;
my_addr.sin_port=htons(servport);
my_addr.sin_addr.s_addr = inaddr_any;
bzero(&(my_addr.sin_zero),8);
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)
if (listen(sockfd, backlog) == -1)
else
while(1)
printf("received a connection from %s/n", inet_ntoa(remote_addr.sin_addr));
if (!fork())
close(client_fd);
} }
程式主要流程為:客戶端詢問which team is win 伺服器端收到請求後回答milan win
具體流程是在伺服器端建立連線,伺服器端進行監聽,如果發現連線,連線就建立
此時兩邊連線建立,使用send()函式和recv()函式進行資料的傳送和接收
LINUX程式設計 socket程式設計
什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...
SOCKET程式設計(LINUX)
現在的網路程式設計幾乎都是用的socket 本地的程序間通訊 ipc 有很多種方式,但可以總結為下面4類 2.我們要討論的是網路中程序之間如何通訊?在本地可以通過程序pid來唯一標識乙個程序,但是在網路中這是行不通的。三元組 ip位址,協議,埠 就可以標識網路的程序了,網路中的程序通訊就可以利用這個...
Linux程式設計基礎 Socket程式設計
linux下的socket程式設計大體上包括tcp socket udp socket即raw socket這三種,其中tcp和udp方式的socket程式設計用於編寫應用層的socket程式,是我們用得比較多的,而raw socket則用得相對較少,不在本文介紹範圍之列。tcp socket 基於...