c++中socket網路程式設計例項詳解
現在幾乎所有c/c++的後台程式都需要進行網路通訊,其實現方法無非有兩種:使用系統底層socket或者使用已有的封裝好的網路庫。本文對兩種方式進行總結,並介紹乙個輕量級的網路通訊庫zeromq。
1.基本的scoket程式設計
關於基本的scoket程式設計網路上已有很多資料,作者在這裡引用一篇文章中的內容進行簡要說明。
基於socket程式設計,基本上就是以下6個步驟:
1、socket()函式
2、bind()函式
3、listen()、connect()函式
4、accept()函式
5、read()、write()函式等
6、close()函式
下面直接引用文章裡的**說明。
//伺服器端
#include
#include
#include
#include
#include
#include
#include
#define maxline 4096
int main(int argc, char** ar**)
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = htonl(inaddr_awww.cppcns.comny);
servaddr.sin_port = htons(6666);
if( bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1)
if( listen(listenfd, 10) == -1)
printf("*****=waiting for client's request*****=\n");
while(1)
n = recv(connfd, buff, maxline, 0);
buff[n] = '\0';
printf("recv msg from client: %s\n", buff);
close(connfd)程式設計客棧;
} close(listenfd);
}客戶端
#include
#include
#include
#include
#include
#include
#include
#define maxline 4096
int main(int argc, char** ar**)
if( (sockfd = socket(af_inet, sock_stream, 0)) < 0)
memset(&servaddr, 0, sizeof(servaddr));
ser程式設計客棧vaddr.sin_family = af_inet;
servaddr.sin_port = htons(6666);
if( inet_pton(af_inet, ar**[1], &servaddr.sin_addr) <= 0)
if( connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) kwalcr
printf("send msg to server: \n");
fgets(sendline, 4096, stdin);
if( send(sockfd, sendline, strlen(sendline), 0) < 0)
close(sockfd);
exit(0);
}本文標題: c++中socket網路程式設計例項詳解
本文位址:
Socket網路程式設計例項1
socket 對所有上層協議 tcp ip,udp等 的底層封裝。網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。建立網路通訊連線至少要一對埠號 socket 協議型別又叫位址簇 socket例項,分別寫在兩個.py裡面,客戶端發出去的內容是小寫的,接收到的...
網路程式設計C 篇(二) Socket簡單例項
原始出處 作者資訊和本宣告。否則將追究法律責任。基於windows套接字socket,簡單的tcp伺服器和客戶機,例項 簡單的tcp伺服器 在伺服器能夠向客戶機連線傳輸資料之前,必須做以下幾件事情 1 建立乙個套接字 2 將所建立的套接字與本地的ipendpoint繫結 3 設定套接字為收聽模式 4...
C 中Socket多執行緒程式設計例項
要通過網際網路進行通訊,你至少需要一對套接字,其中乙個執行於客戶機端,我們稱之為clientsocket,另乙個執行於伺服器端,我們稱之為serversocket。根據連線啟動的方式以及本地套接字要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽,客戶端請求,連線確認。所謂伺服器監聽,是...