C 後台程式設計一 socket通訊

2021-08-01 07:53:03 字數 2234 閱讀 7736

最近要寫一些計算機網路的一些實驗,所以最近寫一些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...