服務端**:
view code
/*客戶端**:server code in c
*///*
//*date:2012-07-03 //
*author :cplushua //
*服務端傳送結構體資料 //
* //*
#include #include
#include
in.h>#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int main(void
) ;
struct
passwd p;
memset(&p,0x00,sizeof(struct
passwd));
strcpy(p.pw_name,
"testuserser");
strcpy(p.pw_passwd,
"234234");
p.pw_gid=1000
; p.pw_uid=1012
; strcpy(p.pw_shell,
"/usr/bin");
strcpy(p.pw_dir,
"/home/");
char sendbuff[sizeof(struct
passwd)];
memset(sendbuff,
0,sizeof
(sendbuff));
memcpy(sendbuff,&p,sizeof(struct
passwd));
cout
buff copy ok now!
"<
struct
sockaddr_in stsockaddr;
int socketfd =socket(pf_inet, sock_stream, ipproto_tcp);
if(-1 ==socketfd)
memset(&stsockaddr, 0, sizeof(struct
sockaddr_in));
stsockaddr.sin_family =af_inet;
stsockaddr.sin_port = htons(5555
); stsockaddr.sin_addr.s_addr =inaddr_any;
if(-1 == bind(socketfd,(const
struct sockaddr *)&stsockaddr, sizeof(struct
sockaddr_in)))
if(-1 == listen(socketfd, 10
))
cout
<
i am wating client ..............
"<
for(;;)
//注意此處的send的第乙個引數是accept返回的描述
send(connectfd, &p, sizeof(p),0
); cout
<
資料傳送成功!
"<
cout
<
已經傳送的資料
"<
cout
<
使用者名稱:
"cout
<
密 碼:
"cout
<
g i d :
"cout
<
realna:
"cout
<
資料夾:
"cout
<
權 限:
"shutdown(connectfd, shut_rdwr);
close(connectfd);
}close(socketfd);
return0;
}
view code
/*client code in c
*//*
*date:2012-07-03
*author :cplushua
*客戶端接收結構體 *
*/#include
#include
#include
in.h>#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int main(void
) ;
struct
passwd p;
//將結構體清零
memset(&p,0,sizeof(struct
passwd));
struct
sockaddr_in stsockaddr;
intres;
//套接字描述
int socketfd =socket(pf_inet, sock_stream, ipproto_tcp);
if (-1 ==socketfd)
//清空
memset(&stsockaddr, 0, sizeof(struct
sockaddr_in));
stsockaddr.sin_family =af_inet;
stsockaddr.sin_port = htons(5555);//
伺服器端口號
res = inet_pton(af_inet, "
211.87.230.12
", &stsockaddr.sin_addr);//
伺服器ip位址**換為網路位元組)
if (0 >res)
else
if (0 ==res)
if (-1 == connect(socketfd, (const
struct sockaddr *)&stsockaddr, sizeof(struct
sockaddr_in)))
//定義乙個與結構體相同大小的buffer
char buffer[sizeof(struct
passwd)];
/*perform read write operations ...
*/memset(buffer,
0x00,sizeof
(buffer));
int readres=read(socketfd,buffer,sizeof
(buffer));
if(readres<0) cout<
資料接收失敗
"<
memcpy(&p,&buffer,sizeof
(p));
cout
<
使用者名稱:
"cout
<
密 碼:
"cout
<
g i d :
"cout
<
realna:
"cout
<
資料夾:
"cout
<
權 限:
"shutdown(socketfd, shut_rdwr);
close(socketfd);
return0;
}
STM32 CAN 配置 收發結構定義 留存
分布式系統專案需要,這次弄個can匯流排來布局,僅見can的冰山一角。本次使用擴充套件幀模式。stm32 對can的定義 庫 can結構體定義 說明 typedef struct can typedef can訊息傳送 can tx message structure definition type...
問題 C 排隊出發 結構體排序
時間限制 1 sec 記憶體限制 128 mb 題目描述 神牛島是傳說中的乙個島嶼,凡是成功到那裡遊歷,完成探險並返回的人,都會成為神牛。但是,現實中卻沒有人知道如何到達神牛島。這天夜裡,篤志者睡著之後,不久就進入了夢鄉。他突然看到有人在問,有人想去神牛島的嗎?神牛島之旅的牌子前,就開始有不少勇士報...
Linux socket 傳輸和接受結構體
linux程式設計 linux socket send and recevie structure 最近在開發乙個linux下的聊天軟體,好久沒有做c語言的開發了,感覺到很多東西已經生疏了,這下又碰到用socket傳遞結構體的問題,google了一下,發現也有不少朋友遇到同樣的問題,所以就打算寫出自...