内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Linux進(jìn)程間通信方式之socket使用實例-創(chuàng)新互聯(lián)

套接字是一種通信機(jī)制,憑借這種機(jī)制,客戶/服務(wù)器系統(tǒng)的開發(fā)工作既可以在本地單機(jī)上進(jìn)行,也可以跨網(wǎng)絡(luò)進(jìn)行。
套接字的特性有三個屬性確定,它們是:域(domain),類型(type),和協(xié)議(protocol)。套接字還用地址作為它的名字。地址的格式隨域(又被稱為協(xié)議族,protocol family)的不同而不同。每個協(xié)議族又可以使用一個或多個地址族定義地址格式。

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。

1.套接字的域


域指定套接字通信中使用的網(wǎng)絡(luò)介質(zhì)。最常見的套接字域是AF_INET,它是指Internet網(wǎng)絡(luò),許多Linux局域網(wǎng)使用的都是該網(wǎng)絡(luò),當(dāng)然,因特網(wǎng)自身用的也是它。其底層的協(xié)議——網(wǎng)際協(xié)議(IP)只有一個地址族,它使用一種特定的方式來指定網(wǎng)絡(luò)中的計算機(jī),即IP地址。


在計算機(jī)系統(tǒng)內(nèi)部,端口通過分配一個唯一的16位的整數(shù)來表示,在系統(tǒng)外部,則需要通過IP地址和端口號的組合來確定。


2.套接字類型


流套接字(在某些方面類似域標(biāo)準(zhǔn)的輸入/輸出流)提供的是一個有序,可靠,雙向字節(jié)流的連接。


流套接字由類型SOCK_STREAM指定,它們是在AF_INET域中通過TCP/IP連接實現(xiàn)的。他們也是AF_UNIX域中常見的套接字類型。


數(shù)據(jù)包套接字


與流套接字相反,由類型SOCK_DGRAM指定的數(shù)據(jù)包套接字不建立和維持一個連接。它對可以發(fā)送的數(shù)據(jù)包的長度有限制。數(shù)據(jù)報作為一個單獨(dú)的網(wǎng)絡(luò)消息被傳輸,它可能會丟失,復(fù)制或亂序到達(dá)。


數(shù)據(jù)報套接字實在AF_INET域中通過UDP/IP連接實現(xiàn),它提供的是一種無需的不可靠服務(wù)。


3.套接字協(xié)議


只要底層的傳輸機(jī)制允許不止一個協(xié)議來提供要求的套接字類型,我們就可以為套接字選擇一個特定的協(xié)議。

先上一個代碼


服務(wù)端:

//s_unix.c 
#include <stdio.h> 
#include <sys/types.h> 
#include <sys/socket.h> 
#include <sys/un.h>  
#define UNIX_DOMAIN "/tmp/UNIX.domain" 
int main(void) 
{ 
  socklen_t clt_addr_len; 
  int listen_fd; 
  int com_fd; 
  int ret; 
  int i; 
  static char recv_buf[1024];  
  int len; 
  struct sockaddr_un clt_addr; 
  struct sockaddr_un srv_addr; 
  listen_fd=socket(PF_UNIX,SOCK_STREAM,0); 
  if(listen_fd<0) 
  { 
    perror("cannot create communication socket"); 
    return 1; 
  }  
  //set server addr_param 
  srv_addr.sun_family=AF_UNIX; 
  strncpy(srv_addr.sun_path,UNIX_DOMAIN,sizeof(srv_addr.sun_path)-1); 
  unlink(UNIX_DOMAIN); 
  //bind sockfd & addr 
  ret=bind(listen_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr)); 
  if(ret==-1) 
  { 
    perror("cannot bind server socket"); 
    close(listen_fd); 
    unlink(UNIX_DOMAIN); 
    return 1; 
  } 
  //listen sockfd  
  ret=listen(listen_fd,1); 
  if(ret==-1) 
  { 
    perror("cannot listen the client connect request"); 
    close(listen_fd); 
    unlink(UNIX_DOMAIN); 
    return 1; 
  } 
  //have connect request use accept 
  len=sizeof(clt_addr); 
  com_fd=accept(listen_fd,(struct sockaddr*)&clt_addr,&len); 
  if(com_fd<0) 
  { 
    perror("cannot accept client connect request"); 
    close(listen_fd); 
    unlink(UNIX_DOMAIN); 
    return 1; 
  } 
  //read and printf sent client info 
  printf("/n=====info=====/n"); 
  for(i=0;i<4;i++) 
  { 
    memset(recv_buf,0,1024); 
    int num=read(com_fd,recv_buf,sizeof(recv_buf)); 
    printf("Message from client (%d)) :%s/n",num,recv_buf);  
  } 
  close(com_fd); 
  close(listen_fd); 
  unlink(UNIX_DOMAIN); 
  return 0; 
} 

當(dāng)前標(biāo)題:Linux進(jìn)程間通信方式之socket使用實例-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://m.rwnh.cn/article48/djepep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、營銷型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
康乐县| 大同县| 若尔盖县| 大宁县| 浑源县| 江华| 怀化市| 胶州市| 富锦市| 大荔县| 阿巴嘎旗| 东山县| 晋州市| 色达县| 巴彦县| 驻马店市| 二连浩特市| 嘉祥县| 高邮市| 朝阳市| 临澧县| 阳新县| 浦江县| 梁平县| 临朐县| 沧州市| 荥经县| 潼关县| 油尖旺区| 都江堰市| 时尚| 自贡市| 弥渡县| 罗城| 夏邑县| 宁国市| 平顺县| 潞城市| 吉首市| 福安市| 澄城县|