Linux的socket程式設計

2021-04-15 06:17:14 字數 1735 閱讀 2059

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 基於...