基於TCP IP的回聲伺服器 Linux環境

2021-10-21 16:36:40 字數 1898 閱讀 2413

注意

需要聯網

需要修改ip位址為自己的ip位址。

ifconfig檢視自己的ip位址

#include

#include

#include

#include

#include

#include

#include

#include

#define buf_size (4096)

void

*server

(void

* arg)

printf

("read:[%s],size:%d\n"

,buf,recv_size)

;strcat

(buf,

":return");

// 傳送資料

int send_size =

write

(cli_fd,buf,

strlen

(buf)+1

);if(

0>= send_size)}}

intmain()

// 準備通訊位址(自己)

struct sockaddr_in addr =

; addr.sin_family = af_inet;

addr.sin_port =

htons

(6789);

addr.sin_addr.s_addr =

inet_addr

("192.168.43.92");

socklen_t addrlen =

sizeof

(addr)

;// 繫結socket物件與位址if(

bind

(svr_fd,

(struct sockaddr*

)&addr,addrlen)

)// 設定監聽和排除數量if(

listen

(svr_fd,10)

)for(;

;)// 建立執行緒服務客戶端

pthread_t tid;

pthread_create

(&tid,

null

,server,

&cli_fd);}

}

#include

#include

#include

#include

#include

#include

#include

#define buf_size (4096)

intmain()

// 準備通訊位址(服務端)

struct sockaddr_in addr =

; addr.sin_family = af_inet;

addr.sin_port =

htons

(6789);

addr.sin_addr.s_addr =

inet_addr

("192.168.43.92");

// 連線服務端if(

connect

(cli_fd,

(struct sockaddr*

)&addr,

sizeof

(addr)))

char buf[

4096];

for(;;

)int recv_size =

read

(cli_fd,buf,buf_size);if

(0>= recv_size)

printf

("read:[%s],size:%d\n"

,buf,recv_size);}

}

epoll回聲伺服器

epoll是在linux系統中,一種高效率的i o復用技術.在linux的網路程式設計中,很長的時間都在使用select來做事件觸發。在linux新的核心中,有了一種替換它的機制,就是epoll。相比於select,epoll最大的好處在於它不會隨著監聽fd數目的增長而降低效率。因為在核心中的sel...

C 回聲伺服器 1 簡單版本

c 網路程式設計離不開socket程式設計。我們現在使用socket編寫簡單的回聲伺服器。這裡所說的流程包括兩部分 socket函式呼叫流程。伺服器與客戶端互動流程。回聲伺服器主要功能 伺服器將接收到來自客戶端的資料傳回客戶端。伺服器的功能 客戶端的功能 include include includ...

C 回聲伺服器 1 簡單版本

c 網路程式設計離不開socket程式設計。我們現在使用socket編寫簡單的回聲伺服器。這裡所說的流程包括兩部分 socket函式呼叫流程。伺服器與客戶端互動流程。回聲伺服器主要功能 伺服器將接收到來自客戶端的資料傳回客戶端。伺服器的功能 客戶端的功能 include include includ...