部落格323 使用socketpair進行通訊

2021-10-07 18:06:41 字數 1899 閱讀 4160

內容:通訊的另一種方式:socketpair

使用方法:

1、socketpair是一種雙向通訊機制,它通過socket實現雙向通訊。

2、socketpair使用場景:

* 在乙個程序的執行緒之間進行雙向通訊

* 在具有親緣關係的程序間進行通訊

例項:

在main執行緒建立出新的執行緒,此時main執行緒和子執行緒同屬乙個程序,它們之間使用socketpair進行通訊
**:

#include

#include

#include

#include

#include

#include

static

void

*thread_run_func (

void

*arg)

;int readlen;

/* 向主程序傳送乙個訊息 */

printf

("send to main thread : %s\n"

,"hello,main!");

write

(thread_fd,

"hello,main!"

,sizeof

("hello,main!"))

;/* 接收主程序傳送的訊息 */

readlen =

read

(thread_fd, thread_buf,50)

; thread_buf[readlen]

='\0'

;printf

("recv from main thread : %s\n"

, thread_buf);}

intmain

(int argc,

char

*ar**)

;int readlen;

result =

socketpair

(af_unix, sock_seqpacket,

0, sockets);if

(-1== result)

/* 建立乙個子執行緒用於和主線程之間進行雙向通訊 */

result =

pthread_create

(&thread,

null

, thread_run_func,

(void

*)sockets[1]

);sleep(1

);/* 延時一段時間讓子程序先於主程序執行 */

/* 接收子程序傳送過來的訊息 */

readlen =

read

(sockets[0]

, main_buf,50)

; main_buf[readlen]

='\0'

;printf

("recv from child thread : %s\n"

, main_buf)

;/* 傳送乙個訊息給子程序 */

printf

("send to child thread : %s\n"

,"hi,child");

write

(sockets[0]

,"hi,child"

,sizeof

("hi,child"))

;sleep(1

);return0;

}

執行結果:

ThinkPHP3 2 3使用分頁

todo 基礎分頁的相同 封裝,使前台的 更少 param count 要分頁的總記錄數 param int pagesize 每頁查詢條數 return think page function getpage count,pagesize 10 控制器中使用的 如下 public function...

ThinkPHP3 2 3使用分頁

thinkphp3.2.3使用分頁 首先要搞清楚的就是thinkphp3.2.3的分頁類已經被移到了think page.class.php,這是跟以前的版本有些不一樣的,使用起來還是跟以前版本差不多,但是預設的效果不敢恭維,所以最好是自己加些樣式。todo 基礎分頁的相同 封裝,使前台的 更少 p...

thinkphp3 2 3 使用配置

1,隱藏index.php home 中的index.php 配置.htaccess檔案 ifmodule mod rewrite.c rewriteengine on rewritecond d rewritecond f rewriterule index.php 1 qsa,pt,l ifmo...