tcp網路通訊示例,用伺服器等待客戶端連線,並且在客戶端連線後傳送乙個訊息後切斷。
伺服器端:
#include #include #include #include #if defined(unix)
#include #include #include #elif defined(windows)
#include #define bzero(p, len) memset((p), 0, (len))
#endif
#define buffer_size 1024
#define server_addr "127.0.0.1"
#define server_port 8089
int main(int argc, const char *argv)
#endif
char buffer[buffer_size];
int server_fd, client_fd;
struct sockaddr_in cliaddr, servaddr;
if ((server_fd = socket(af_inet, sock_stream, 0)) == -1)
bzero(&(servaddr.sin_zero), sizeof(servaddr.sin_zero));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(server_port);
servaddr.sin_addr.s_addr = htonl(inaddr_any);
bind(server_fd, (struct sockaddr *)&servaddr, sizeof(servaddr));
if (listen(server_fd, 5) == -1)
printf("listen\n");
while (1)
char *client_ip_addr_buffer;
client_ip_addr_buffer = inet_ntoa(cliaddr.sin_addr);
char message = "hello, world! from server!\n";
sprintf(buffer, "%s", message);
if (send(client_fd, buffer, strlen(buffer), 0) == -1)
#if defined(unix)
close(client_fd);
#elif defined(windows)
closesocket(client_fd);
#endif
}#if defined(unix)
close(server_fd);
#elif defined(windows)
closesocket(server_fd);
wsacleanup();
#endif
return 0;
}
客戶端:
#if defined(unix)
#include #include #include #elif defined(windows)
#include #define bzero(p, len) memset((p), 0, (len))
#endif
#define server_addr "127.0.0.1"
#define server_port 8089
int main(int argc, const char *argv)
#endif
int sockfd;
struct sockaddr_in servaddr;
if ((sockfd = socket(af_inet, sock_stream, 0)) == -1)
bzero(&servaddr, sizeof(servaddr));
#if defined(unix)
inet_pton(af_inet, server_addr, &servaddr.sin_addr);
#elif defined(windows)
servaddr.sin_addr.s_un.s_addr = inet_addr(server_addr);
#endif
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(server_port);
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(struct sockaddr)) == -1)
char buffer[255];
size_t recv_len;
recv_len = recv(sockfd, buffer, 255, 0);
int i;
for (i = 0; i < recv_len; i++)
#if defined(unix)
close(sockfd);
#elif defined(windows)
closesocket(sockfd);
wsacleanup();
#endif
return 0;
}
基於TCP的簡單通訊例項
程式設定了連線數限制,當連線伺服器的數量超過3時,不再接受其他連線。且只實現了客戶端與伺服器之間的通訊。伺服器端 using system using system.collections.generic using system.componentmodel using system.data u...
android網路通訊之訊息推送教程例項彙總
一 例項教程 android網路通訊之訊息推送教程篇 1 android cloud to device messaging 服務介紹 從雲端推送訊息到手 2 通知推送在android上執行 技術背景 二 學習筆記 android網路通訊之訊息推送的實踐過程篇 1 定時訊息推送 火 2 訊息推送 火...
tcp的資料報傳送與網路佇列長度
假設tcp的擁塞控制演算法為tcp reno,ssthresh 20,擁塞視窗的初始值為1.假設網路鏈路為n0 b1,d1 n1 b1,d2 n2,其中 b,d 分別代表頻寬和時延,b1 b2。假設這條鏈路僅有乙個tcp session。現在,從理論上分析下這條鏈路的丟包情況。根據之前的分析 1 t...