下面模擬了,簡單的客戶機伺服器投射模擬的過程。客戶機像伺服器傳送資料,伺服器接受到資料後,傳送回給客戶機。再由客戶機列印出來。
網路方面
伺服器
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 **argv)
}exit(0);
}close(connfd);
}}
#include #include#include
in.h>#include
#include
#include
#include
#define maxline 1024
int main(int argc, char
const *argv)
}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.1ffffff
ffffff
dddd
gggg
hello
hello
heiheieieihehi
heiheieieihehi
fdafdasfdasfdasfdasfdas
fdafdasfdasfdasfdasfdas
dd
伺服器端接收
[xingoo@localhost tcpip]$ ./servfrom
client:ffffff
from
client:dd
from
client:gg
from
client:hello
from
client:heiheieieihehi
from
client:fdafdasfdasfdasfdasfdas
from client:d
簡單的客戶機伺服器投射模擬
下面模擬了,簡單的客戶機伺服器投射模擬的過程。客戶機像伺服器傳送資料,伺服器接受到資料後,傳送回給客戶機。再由客戶機列印出來。網路方面 伺服器 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...