linux socket 客戶端和伺服器例程

2021-09-25 23:02:47 字數 967 閱讀 2414

書中用的是server_address.sin_port = 5566;

正確應該是server_address.sin_port = htons(5566);

網路的位元組順序和主機的位元組順序是不同的,網路是大端模式,intel x86和amd cpu是小端模式

這麼出名的《linux程式設計》書籍也有這種紕漏,實在讓我對這本書的敬仰大打折扣。

#include #include #include #include #include #include #include #include using namespace std;

int main()

server_address.sin_family = af_inet;

server_address.sin_addr.s_addr = inet_addr("127.0.0.1");

server_address.sin_port = htons(5566);

server_len = sizeof(server_address);

if (bind(server_sockfd, reinterpret_cast(&server_address), server_len) < 0)

if (listen(server_sockfd, 5) < 0)

while (1)

return 0;

}

#include #include #include #include #include #include #include #include int main()

write(sockfd, &ch, 1);

read(sockfd, &ch, 1);

printf("char from server = %c\n", ch);

close(sockfd);

return 0;

}

Linux socket程式設計 伺服器 客戶端

根據網上的程式修改的,感謝!另外有個linux網路除錯工具,tcpdump,類似xp上的wireshark,使用介紹 伺服器端 客戶機端 可以實現,客戶機一直傳送,伺服器一直接收資料,原理網上的程式是只發一次。現在這個還有個問題,退出只能ctrl c,如果客戶機先退出,伺服器一直接收資料,不知道什麼...

胖客戶端 瘦客戶端和富客戶端

以c s結構開發的網路應用程式,需要為客戶端開發專用的客戶端軟體,相對而言其客戶端比較龐大,在客戶端可以實現很多功能,分擔伺服器的負擔,屬於胖客戶端型別。以b s結構開發的web應用,其客戶端只是乙個瀏覽器,所有業務邏輯由伺服器端進行處理,相對而言客戶端比較瘦小,故稱為瘦客戶端。目前比較流行的一種開...

非同步客戶端和同步客戶端

先寫下我的理解,方便後邊閱讀資料校驗。一 同步客戶端 比如乙個連線有兩個請求,請求1 和 請求2,請求1 先發起請求,請求2後發起請求,則請求2 要等待請求1 響應完成才能接收到響應。舉個棗子,httpclient 傳送get請求,執行緒會一致阻塞,直到有響應結果。二 非同步客戶端 比如乙個連線有兩...