簡單的客戶機伺服器投射模擬

2021-09-08 06:00:30 字數 2439 閱讀 3455

下面模擬了,簡單的客戶機伺服器投射模擬的過程。客戶機像伺服器傳送資料,伺服器接受到資料後,傳送回給客戶機。再由客戶機列印出來。

網路方面

伺服器

socket(af_inet,sock_stream,0);af_inet表示ipv4,sock_stream表示基於位元組流的,0表示協議由前面兩個引數組合而成。返回描述符

bind(sockdf,(struct sockaddr*)servaddr,sizeof(servaddr));用於把描述符與本地協議位址聯絡起來。

listen(listenfd,1024);監聽佇列,最多監聽1024個連線

accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);從完成佇列裡面取出套接字進行鏈結,如果沒有,則睡眠等待。

close(connfd);   關閉連線

客戶機

sockfd = socket(af_inet,sock_stream,0

); 與上面相同

connect(sockfd,(

struct sockaddr *)&servaddr,sizeof(servaddr)); 向伺服器發起連線,三次握手是在這裡觸發

io方面

fgets(sendline,maxline,stdin);   從標準輸入中獲取資料寫入到sendline中,回車結束

fputs(recvline,stdout);   從緩衝區recvline中讀取資料寫入到stdout中

read(sockfd,recvline,maxline);   從sockfd中讀入資料到recvline中

write(sockfd,sendline,strlen(sendline));   向sockfd中寫入sendline中的資料

#include #include 

#include

#include

in.h>#include

#include

#define serv_port 9877

#define listenq 1024

#define maxline 1024

int main(int argc,char **ar**)

}exit(0);

}close(connfd);

}}

#include #include 

#include

in.h>#include

#include

#include

#include

#define maxline 1024

int main(int argc, char

const *ar**)

}exit(0);

}

由於每次傳送資料後,伺服器端的buf,以及客戶機端的sendline recvline都有上次的舊資料,因此每次都進行一次賦值'\0',保證上次的資料不會對這次產生影響。

在終端執行:

gcc -wall -o serv serv.c

./serv

另開啟終端執行:

gcc -wall -o clien clie.c

./clie 127.0.0.1

此時在客戶機端傳送資料

[xingoo@localhost tcpip]$ ./clie 127.0.0.1

ffffff

ffffff

dddd

gggg

hello

hello

heiheieieihehi

heiheieieihehi

fdafdasfdasfdasfdasfdas

fdafdasfdasfdasfdasfdas

dd

伺服器端接收

[xingoo@localhost tcpip]$ ./serv

from

client:ffffff

from

client:dd

from

client:gg

from

client:hello

from

client:heiheieieihehi

from

client:fdafdasfdasfdasfdasfdas

from client:d

posted @

2014-05-19 16:46

xingoo 閱讀(

...)

編輯收藏

簡單的客戶機伺服器投射模擬

下面模擬了,簡單的客戶機伺服器投射模擬的過程。客戶機像伺服器傳送資料,伺服器接受到資料後,傳送回給客戶機。再由客戶機列印出來。網路方面 伺服器 socket af inet,sock stream,0 af inet表示ipv4,sock stream表示基於位元組流的,0表示協議由前面兩個引數組合...

利用伺服器將客戶機加入域

1 netdom 系統支援工具,使用前需先行安裝 光碟 support tools suptools.msi 2 新增計算機到域 在域控制器上執行以下命令 netdom join 10.4.122.3 domain nc.bmcc.com.cn userd administrator passwor...

nfs伺服器及客戶機端配置

nfs伺服器及客戶機端配置 overview 伺服器端 oracle11g 10.80.11.202 客戶端 oracle10g 10.80.11.177 1 配置伺服器端 在redhat linux下nfs是預設安裝的,再次確認是否已經安裝相應rpm包 前提檢查 rpm qa grep nfs n...