最近要寫一些計算機網路的一些實驗,所以最近寫一些linux平台下的後台程式設計,使用c++語言編寫。
沒有了windows下的ide,所以用的是記事本編寫cpp檔案,@=@.
主要寫了兩個cpp檔案,乙個server,另乙個client,先上**,有時間再講解**的意思。
#include
#include
#include
#include
#include
#include
#include
#define maxline 4096
int main(int argc, char** argv)
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = htonl(inaddr_any);
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] = '\n';
printf("recv msg from client:%s\n",buff);
close(connfd);
}close(listenfd);
return
0;}
#include
#include
#include
#include
#include
#include
#include
#include
#define maxline 4096
int main(int argc, char** argv)
if((sockfd = socket(af_inet, sock_stream, 0)) < 0)
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(6666);
if(inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)
if(connect(sockfd, (struct sockaddr*) &servaddr, sizeof(servaddr)) < 0)
printf("send msg to server:\n");
fgets(sendline, 4096, stdin);
if(send(sockfd, sendline, strlen(sendline), 0) < 0)
close(sockfd);
return
0;}
寫完這兩個cpp檔案後需要用g++編譯,所以下乙個makefile檔案,內容如下
all:server
client
server:server.o
g++ -g -o server
server.o
client:client.o
g++ -g -o client
client.o
server.o:server.cpp
g++ -g -c server.cpp
client.o:client.cpp
g++ -g -c client.cpp
clean:all
rm all
在命令列下執行makefile檔案,你會發現生成了四個檔案,分別為server.o、client.o、以及server、client可執行檔案。
然後開啟兩個終端,乙個終端輸入
./server
另乙個終端輸入
./client
127.0
.0.1
在客戶端傳送訊息,服務端會收到訊息,非常簡陋。@+@ C語言 socket 通訊程式設計
server端在tcp的通訊中,需要做到以下6點 socket套接字的構造 socket int socket int domain,int type,int protocol domain 指定通訊域 選擇通訊的協議族。type 型別,tcp為sock stream,udp為sock dgram。...
socket通訊程式設計
1 socket通訊模型如下 應用程式通過套接字可以進行通訊,可以使用udp協議或者使用tcp協議,當客戶端和伺服器端的協議時相對應的,客戶端使用tcp,那麼伺服器端使用tcp 2 udp協議 把資料打包成資料報,然後直接傳送對應的ip位址,速度快,但是不保證 成功率,並且資料大小有限 tcp協議 ...
網路程式設計 socket程式設計通訊
一直感覺socket這個東西挺神秘的 覺得是大牛級別的才能駕輕就熟。今天碰巧看了一下socket的相關資料,通過socket實現客戶端和服務端的通訊,從實戰中去體驗socket的用處。先給大家上一張圖 這張圖大致就是tcp協議和udp協議的分布範圍,其中,socket負責的是傳輸層之間的通訊 soc...